我有一个相对简单的脚本,用于在我的数据上运行映射作业,我希望它通过使用 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
。