2017-10-30 2 views

答えて

0

コールが完了した後にのコールがProcessElementコールのハンドルを保持しているため、これは削除されました。これは安全ではなく、動作することが保証されていません。

しかし、私はそれが有用な抽象化であったことに同意します。そして、私たちがまだ置き換えをしていないことは残念です。回避策として

、あなたは次のことを試すことができます:あなたのDoFnの@Setup

  • 、あなたのDoFnの@StartBundleでスレッド
  • の必要数とExecutorを作成し、エグゼキュータ
  • を包む ExecutorCompletionServiceを作成します
  • @ProcessElementには、要素の処理結果を表すFutureを提出します。
  • @ProcessElementには、als完了した先物についてCompletionService
  • @FinishBundleには、残りの未来がすべて完了するまで待って結果を出力し、CompletionServiceをシャットダウンします。

ないに覚えておいてください、あなたの先物でProcessContextを使用しています。 ProcessContextは現在のスレッドと現在のProcessElement呼び出し内からのみ使用できます。

+0

上記の実例がありますか? – ghostcoder

関連する問題