2016-07-22 77 views
1

Google Dataflowジョブの完了後にGoogle Pubsubにメッセージを公開する方法はありますか?従属システムに着信データの処理が完了したことを通知する必要があります。シンクにデータを書き込んだ後、Dataflowをどのように公開できますか?データフロージョブが完了したときにGoogle PubSubに通知する

EDIT: パイプラインがGCSへの書き込みを完了した後に通知します。当社のパイプラインは次のようになります。

 
Pipeline.create(options) 
       .apply(....) 
       .apply(AvroIO.Write.named("Write to GCS") 
          .withSchema(Extract.class) 
          .to(options.getOutputPath()) 
          .withSuffix(".avro")); 
p.run(); 

たちはコードがパイプラインが完了していないとき、実行を完了したときに我々が通知されpipeline.apply(...)メソッドの外にロジックを追加する場合。理想的には、AvroIOシンクの後に.apply(...)を追加し、PubSubにメッセージを公開することができます。

+1

パイプラインが終了したときに、パブ/サブトピックにメッセージを書き込むことは何もありません。これを行うにはデータフローは必要ありません。 –

+1

希望の効果を得るには、BlockingPipelineRunner(https://cloud.google.com/dataflow/pipelines/specifying-exec-params#blocking-execution)を使用する必要があります。 –

答えて

1

あなたのパイプラインの終了通知を受けるには、2つのオプションがあり、そしてその後のメッセージを公開 - かあなたはパイプラインの実行が終了した後にやりたい:

  1. BlockingPipelineRunnerを使用してください。これにより、パイプラインsynchronouslyが実行されます。
  2. DataflowPipelineRunnerを使用してください。これにより、パイプラインasynchronouslyが実行されます。パイプラインの状態をポーリングして終了するまで待機することができます。
関連する問題