有没有办法在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。
您有两个选项可以在管道完成时收到通知,然后随后发布消息-或者在管道完成运行后执行任何您想执行的操作:
BlockingPipelineRunner
。这将同步运行您的管道。DataflowPipelineRunner
。这将异步运行您的管道。然后,您可以轮询管道的状态,并等待它完成。