在Dataflow作业完成时通知Google PubSub

时间:2016-07-22 12:27:30

标签: google-cloud-dataflow google-cloud-pubsub

Google Dataflow作业完成后,有没有办法在Google Pubsub上发布消息?我们需要通知从属系统传入数据的处理已完成。将数据写入接收器后,Dataflow如何发布?

修改 我们想在管道完成写入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 个答案:

答案 0 :(得分:1)

您有两个选项可以在管道完成后收到通知,然后发布消息 - 或者在管道完成运行后执行任何操作:

  1. 使用BlockingPipelineRunner。这将运行您的管道synchronously
  2. 使用DataflowPipelineRunner。这将运行您的管道asynchronously。然后,您可以轮询管道的状态,并等待它完成。