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发布消息。
答案 0 :(得分:1)
您有两个选项可以在管道完成后收到通知,然后发布消息 - 或者在管道完成运行后执行任何操作:
BlockingPipelineRunner
。这将运行您的管道synchronously。DataflowPipelineRunner
。这将运行您的管道asynchronously。然后,您可以轮询管道的状态,并等待它完成。