我有一个相对简单的脚本用于在我的数据上运行地图作业,我希望通过使用gevent使数据存储区的读取无阻塞来更快地运行。
我尝试将gevent.monkey.patch_socket()
添加到remote_api_shell.py
的顶部,但在我登录后,它会抛出urllib2.URLError
(traceback)。
我是GAE和gevent的新手。有没有更简单的方法来完成我想要做的事情?有人能指出我正确的方向让这个工作吗?
答案 0 :(得分:1)
ndb
:您可以ndb
使用*_async
datastore operations:
https://developers.google.com/appengine/docs/python/ndb/async
例如,要按键检索元素列表:
ndb.get_multi_async(list_of_keys)
ndb
的优点在于密钥或实体上的每个数据存储区操作都具有异步等效项。
db
:您可以使用Async Datastore API。
例如,要按键检索元素列表:
from google.appengine.ext import db
db.get_async(list_of_keys)
其中list_of_keys
包含字符串,google.appengine.api.datastore_types.Key
的实例或google.appengine.api.datastore.Entity
的实例的元素。
同样,您可以在实体列表上使用db.put_async
,在类似db.delete_async
的列表上使用db.get_async
。