2016-07-22 24 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。然后,您可以轮询管道的状态,并等待它完成。
相关问题