2016-07-22 46 views
1

Google Dataflow作業完成後,是否有方法將消息發佈到Google Pubsub上?我們需要通知從屬系統傳入數據的處理已完成。將數據寫入接收器後,Dataflow如何發佈?數據流作業完成時通知Google PubSub

編輯: 我們想在管道完成寫入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

沒有什麼能夠阻止您在管道完成時將消息寫入發佈/訂閱主題。您不需要Dataflow來執行此操作。 –

+1

可能需要使用BlockingPipelineRunner(https://cloud.google.com/dataflow/pipelines/specifying-exec-params#blocking-execution)才能達到所需的效果。 –

回答

1

你當你的管道完成,並隨後發佈消息兩個選項得到通知 - 或做任何你想後管道完成運行:

  1. 使用BlockingPipelineRunner。這將運行您的管道synchronously
  2. 使用DataflowPipelineRunner。這將運行你的管道asynchronously。然後,您可以輪詢管道的狀態,並等待它完成。
相關問題