2011-06-27 41 views
0

我有一個需要一點時間(涉及一些計算和訪問第三方)的查詢。目前,用戶發起一個HTTP請求來啓動查詢(它立即返回)。 GAE將任務放入隊列並執行。執行後,任務將結果存儲在靜態對象中。用戶稍後再發出一個HTTP請求來檢索結果。Google App Engine中臨時查詢結果存儲的最佳做法

是否有最佳實踐方式來實現這樣的事情?結果是否會更好地存儲在DataStore中?

回答

1

任務存儲在一個靜態對象的結果

你是如何確保來自同一用戶後續請求到達同一個實例,以便它可以訪問靜態對象?

更好的方法是將它存儲在memcache(容易出錯或未命中)和/或數據存儲中。請記住,使用新的定價模型,數據存儲操作將花費更多。

+0

結果只會被提取一次(然後刪除)。因此,儘管它不會使用memcache的緩存優勢,但我認爲它的檢索速度仍將比數據存儲更快。 – khayman218

+1

是的,如果它只用了一次,那麼在memcache和gamble中存儲就沒有意義了。確保您在通過您的以下請求讀取數據存儲後從數據存儲中刪除這些實體。 – kunal

+0

正如@kunal所指出的那樣,因爲無論如何您都必須將其存儲在數據存儲中(爲了可靠性),並且一旦過期就將其刪除,根本沒有意義將其存儲在memcache中。 –

相關問題