App Engine memcache 异步操作 get_multi_async
如何使用 memcache 的 get_multi_async。
文档上说它会返回一个“字典”,里面是一些值。
http://code.google.com/appengine/docs/python/memcache/clientclass.html#Client_get_multi_async
我原本以为它会返回某种“异步对象”,我可以稍后用 get_result() 来获取结果。
我是不是漏掉了什么??
2 个回答
1
调用 get_multi_async
实际上会返回一个 RPC
对象,你可以用这个对象来处理后面的结果。
client = memcache.Client()
rpc = client.get_multi_async(['key1', 'key2'])
# Do other work
result = rpc.get_result()
如果你想的话,可以自己创建一个 RPC
对象,这样你就可以控制时间限制,还可以设置一个回调函数,当数据获取完成时会自动调用这个函数:
client = memcache.Client()
rpc = memcache.create_rpc(deadline=30, callback=my_callback)
client.get_multi_async(['key1', 'key2'], rpc=rpc)
需要注意的是,你创建的 RPC
对象必须来自 memcache
这个包,而不是 urlfetch
这个包。
3
我觉得你需要传入一个RPC对象;文中提到的那个字典可以通过RPC对象上的get_result()
函数来获取。