Асинхронная операция memcache в App Engine get_multi_async
Как использовать memcache get_multi_async.
Док говорит, что возвращает "словарь" значений. http://code.google.com/appengine/docs/python/memcache/clientclass.html
Я ожидал, что он вернет какой-то "асинхронный объект", на котором я могу сделать get_result() позже.
Я что-то пропустил??
2 ответа
Я считаю, что вам нужно передать объект RPC; словарь, о котором он говорит, будет получен через get_result()
функция на объекте RPC.
Призыв к 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
один.