google.appengine.ext.ndb.eventloop モジュール
概要
イベントループ。
このイベントループは、非同期 App Engine RPC オブジェクト(特に urlfetch、memcache、datastore の RPC オブジェクト)と遅延オプションを指定した任意のコールバック関数の両方を処理する必要があります。
通常、イベントループはシングルトン オブジェクトですが、この要件は強制ではありません。
ここでの API は Monocle に着想を得ています。
内容
- class google.appengine.ext.ndb.eventloop.EventLoop(clock=None)ソース
-
ベース: オブジェクト
イベントループ。
- add_idle(callback, *args, **kwds)ソース
-
アイドル状態のコールバックを追加します。
アイドル状態のコールバックは、True、False または None を返すことができます。それぞれの意味は次のとおりです。
-
None: コールバックを削除します(再スケジュールしません)
-
False: コールバックは機能しませんでした。後で再スケジュールします
-
True: コールバックは一部動作しました。まもなく再スケジュールします
コールバックで例外が発生すると、トレースバックが記録され、コールバックは削除されます。
-
- clear()ソース
-
保留中のイベントを実行せずにすべて削除します。
- insort_event_right(event, lo=0, hi=None)ソース
イベントをキューに挿入し、キューがソートされていると仮定してソートした状態を保ちます。
イベントがすでにキューに入っている場合は、そのイベントを右端のイベントの右側に挿入します(FIFO 順序を保持します)。
オプションの args lo(デフォルトは 0)と hi(デフォルトは len(a))は、検索対象のスライスを抑制します。
パラメータevent –(unix epoch, callback, args, kwds 以降の秒単位の時間)タプル。
- queue_call(delay, callback, *args, **kwds)ソース
-
関数の呼び出しを将来の特定の時刻にスケジュールします。
- queue_rpc(rpc, callback=None, *args, **kwds)ソース
-
callback オプションを使用して RPC をスケジュールします。
呼び出し側は、事前にそのサービスに呼び出しを送っている必要があります。callback オプションは、残りの引数とともに呼び出されます。
注: rpc が MultiRpc の場合、コールバックはサブ RPC ごとに 1 回呼び出されます。TODO: これはよいアイデアだろうか?
- run()ソース
-
何もすることがなくなるまで実行します。
- run0()ソース
1 つのアイテム(コールバックまたは RPC wait_any)を実行します。
戻り値何かが発生した場合はスリープする時間(0 の可能性)、すべてのキューが空の場合は None。
- run1()ソース
1 つのアイテム(コールバックまたは RPC wait_any)を実行するか、スリープします。
戻り値何かが発生したら True、すべてのキューが空の場合は False。
- run_idle()ソース
アイドル状態のコールバックの 1 つを実行します。
戻り値呼び出された場合は True、アイドル状態のコールバックが呼び出されなかった場合は False。
- google.appengine.ext.ndb.eventloop.add_idle(callback, *args, **kwds)ソース
- google.appengine.ext.ndb.eventloop.queue_call(*args, **kwds)ソース
- google.appengine.ext.ndb.eventloop.queue_rpc(rpc, callback=None, *args, **kwds)ソース
- google.appengine.ext.ndb.eventloop.get_event_loop()ソース
-
EventLoop インスタンスを返します。
新しい HTTP リクエストごとにインスタンスが新規作成されます。os.environ を調べることによって、新規リクエストであるかどうかを判断します。os.environ は、各リクエストの開始時にリセットされます。また、各スレッドは独自のループを取得します。
- google.appengine.ext.ndb.eventloop.run()ソース
- google.appengine.ext.ndb.eventloop.run0()ソース
- google.appengine.ext.ndb.eventloop.run1()ソース

