App Engine memcache 异步操作 get_multi_async

2 投票
2 回答
893 浏览
提问于 2025-04-17 03:22

如何使用 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()函数来获取。

撰写回答