App Engine内存缓存异步操作get_multi_async

时间:2011-09-29 18:02:49

标签: python google-app-engine

使用memcache get_multi_async。

Doc说它返回值的“字典”。 http://code.google.com/appengine/docs/python/memcache/clientclass.html#Client_get_multi_async

我期待它能够返回某种“异步对象”,我可以在以后再使用get_result()。

我错过了什么吗?

2 个答案:

答案 0 :(得分:3)

我相信你需要传递an RPC object;它所说的字典将通过RPC对象上的get_result()函数获得。

答案 1 :(得分:1)

get_multi_async的调用实际上会返回一个RPC对象,您可以使用该对象稍后执行结果。

client = memcache.Client()
rpc = client.get_multi_async(['key1', 'key2'])
# Do other work
result = rpc.get_result()

如果你愿意,你可以make your own RPC object允许你控制截止日期,并提供一个在完成提取时调用的回调:

client = memcache.Client()
rpc = memcache.create_rpc(deadline=30, callback=my_callback)
client.get_multi_async(['key1', 'key2'], rpc=rpc)

请注意,您创建的RPC对象必须来自memcache包,而不是urlfetch包。