提问者:小点点

数据流作业完成时通知Google PubSub


有没有办法在Google数据流作业完成后将消息发布到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. application(…)方法之外添加逻辑,我们会在代码完成执行时收到通知,而不是在管道完成时。理想情况下,我们可以在AvroIO接收器之后添加另一个.application(…)并将消息发布到PubSub。


共1个答案

匿名用户

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

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