Асинхронная операция 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 один.

Другие вопросы по тегам