これは少し奇妙に聞こえるかもしれませんが、Tornado が Future をタイムアウトでラップした後に実行を完了することは可能でしょうか?
だから、このようなもの:
try:
result = yield gen.with_timeout(time.time() + 1, future)
except gen.TimeoutError as e:
print('Timed out!')
したがって、このシナリオでは、future
タイムアウト前に完了しませんが、呼び出し可能なものは何でも実行し続けたいと思います。
別の言い方をすればgen.WaitIterator
、ドキュメントで説明されているように、これを使用して一連の先物の結果を取得できるようにしたいと考えています。
各 Future の結果をできるだけ早く取得する必要がある場合、または他の Future がエラーを生成したとしても一部の Future の結果が必要な場合は、 を使用できます
WaitIterator
。
これはまさに私が探しているものです。他のタスクよりも時間がかかるタスクがあるため、将来の各結果をできるだけ早く取得したいのですが、例外が 1 つあります。これらの遅いタスクは引き続き結果を生成する必要があるため、後でアクセスできます。
これは可能ですか?