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()ソース
このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

Python の App Engine スタンダード環境