0

我目前在我的Google Appsengine應用程序中使用Google memcache API來將大量數據存儲在緩存中,但是這需要異步發生,因爲我需要在返回結果之前它完成了。調用memcache.set_multi_async不會保存值

我已經找到答案here說明它是如何完成的,但是我仍然無法讓我的代碼正常工作。

我試圖用這個,但是它只是使內存緩存是同步存儲值:

client = memcache.Client() 
rpc = client.set_multi_async(values) 
rpc.get_result() 
return values[id] 

我也試過,但它會導致內存緩存永遠不會保存這些值:

client = memcache.Client() 
client.set_multi_async(values, rpc=memcache.create_rpc()) 
return values[id] 

有沒有辦法異步存儲這些值並同時返回一個值?謝謝

+0

可能重複的[App Engine memcache異步操作get \ _multi \ _async](http://stackoverflow.com/questions/7601471/app-engine-memcache-async-operation-get-multi-async) –

回答

0

rpc.get_result()導致rpc對象在返回前等待結果可用,從而使您的代碼同步。爲了使代碼異步,您需要返回rpc對象,然後使用Future class等待並處理結果。

+0

您能否也許會展示一個如何實現的例子,因爲我完全停留在Google的文檔中,謝謝! – Paradoxis

+0

這裏有一個例子(https://cloud.google.com/appengine/docs/python/ndb/async) - 有幫助嗎? – tx802