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