0

我有一个相对简单的脚本,用于在我的数据上运行映射作业,我希望它通过使用 gevent 从数据存储区进行非阻塞读取来运行得更快。

我尝试添加gevent.monkey.patch_socket()到顶部remote_api_shell.py,但是在我登录后,它会抛出一个urllib2.URLError回溯)。

我是 GAE 和 gevent 的新手。有没有更简单的方法来完成我想要做的事情?有人可以为我指明正确的方向以使其正常工作吗?

4

1 回答 1

1

如果使用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

于 2012-12-19T18:59:56.787 回答