Future
は、非同期オペレーションの結果を表します。多くの場合、作成時には、結果データは含まれません。オペレーションが終了すると、Future
は結果を取得します。アプリケーションは、Future
オブジェクトの get_result()
メソッドを呼び出すことができます。結果が届いている場合、メソッドはそれを返します。結果が届いていない場合は、届くまで待機して返します。
注: RPC と Future の間に 1:1 の対応はありません。複数の Future が 1 つの RPC の結果に対応する場合もあります。
インスタンス メソッド
- check_success()
- 演算が成功したか確認します。必要に応じて待機します。問題が存在する場合には、例外を返します。問題が存在しない場合には、
None
を返します。 - done()
- 結果が届いている場合は
True
を返します。届いていない場合は、False
を返します。この関数は待機しません。 - get_exception()
- 必要に応じて待機し、例外を返します。例外が存在しない場合には、
None
を返します。例外を返しますが、例外を生成することはありません。 - get_result()
- 必要に応じて待機し、結果を返します。あるいは、例外を生成します。
- get_traceback()
- 必要に応じて待機し、例外のトレースバック オブジェクトを返します。トレースバック オブジェクトが存在しない場合は
None
を返します。Python のtraceback
モジュールは、トレースバック オブジェクトの出力と操作を行う関数を備えています。 - wait()
- 結果や例外が到着するまで待機します。常に
None
を返します。
クラス メソッド
- wait_all(futures)
- 渡されたイテラブルのすべての
Futures
が完了するまで待機します。引数
- futures
Future
オブジェクトのイテラブル。
None
を返します。 - wait_any(futures)
Futures
のイテラブルが少なくとも 1 つが終了するまで待機します。引数
- futures
Future
オブジェクトのイテラブル。
終了した 1 つの
Future
を返します。 (futures
イテラブルが空の場合、None
を返します。)