有没有办法在 Google Dataflow 作业完成后将消息发布到 Google Pubsub 上?我们需要通知依赖系统传入数据的处理已完成。将数据写入到接收器后,Dataflow 如何发布?
EDIT:我们希望在管道完成写入 GCS 后发出通知。我们的管道如下所示:
Pipeline.create(options)
.apply(....)
.apply(AvroIO.Write.named("Write to GCS")
.withSchema(Extract.class)
.to(options.getOutputPath())
.withSuffix(".avro"));
p.run();
如果我们在 pipeline.apply(...) 方法之外添加逻辑,我们会在代码完成执行时收到通知,而不是在管道完成时收到通知。理想情况下我们可以添加另一个.apply(...)
在 AvroIO 接收器之后并向 PubSub 发布消息。
您有两种选择可以在管道完成时收到通知,然后发布消息 - 或者在管道完成运行后执行您想要的任何操作:
- Use the
BlockingPipelineRunner
。这将运行您的管道同步地 https://cloud.google.com/dataflow/pipelines/specifying-exec-params#blocking-execution.
- Use the
DataflowPipelineRunner
。这将运行您的管道异步地 https://cloud.google.com/dataflow/pipelines/specifying-exec-params#asynchronous-execution。然后,您可以轮询管道的状态,并等待其完成。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)