0

データに対してマップジョブを実行するために使用する比較的単純なスクリプトがあります。geventを使用してデータストアからの読み取りを非ブロッキングにすることで、スクリプトをより高速に実行したいと考えています。

gevent.monkey.patch_socket()の先頭に追加しようとしましたが、ログインすると(tracebackremote_api_shell.py )がスローされます。urllib2.URLError

私はGAEとgeventの両方に不慣れです。私がやろうとしていることを達成するためのより簡単な方法はありますか?誰かがこれを機能させるために正しい方向に私を向けることができますか?

4

1 に答える 1

1

使用する場合ndb

データストア操作ndbで使用できます:https ://developers.google.com/appengine/docs/python/ndb/async*_async

たとえば、キーごとに要素のリストを取得するには、次のようにします。

ndb.get_multi_async(list_of_keys)

の素晴らしい点ndbは、キーまたはエンティティに対するすべてのデータストア操作に同等の非同期があることです。

使用する場合db

AsyncDatastoreAPIを使用できます。

たとえば、キーごとに要素のリストを取得するには、次のようにします。

from google.appengine.ext import db
db.get_async(list_of_keys)

ここには、文字列、のインスタンス、またはのインスタンス list_of_keysのいずれかである要素が含まれます。google.appengine.api.datastore_types.Keygoogle.appengine.api.datastore.Entity

db.put_async同様に、エンティティのリストおよびdb.delete_asyncのリストと同様のリストで使用できますdb.get_async

于 2012-12-19T18:59:56.787 に答える