【问题标题】:Apache beam streaming pipeline deplyment doesn't exitApache 光束流管道部署不存在
【发布时间】:2021-02-05 16:04:19
【问题描述】:

我有一个流式 apache 光束管道,我想使用 DataflowRunner 进行部署。我的管道代码如下所示:

with beam.Pipeline(options=pipeline_options) as p:
    (p | "Read input from PubSub" >>
     beam.io.ReadFromPubSub(subscription=known_args.subscription)
     # ...

然后我像这样部署管道python3 main.py --runner=DataflowRunner --streaming ...管道正在成功部署,但问题是该过程并未结束,而是继续显示来自工作人员的日志。

有没有办法启动管道,检查它是否处于运行状态,然后退出进程?

【问题讨论】:

    标签: google-cloud-dataflow apache-beam


    【解决方案1】:

    我相信当您使用 `with beam.Pipeline() as p:' 时,默认情况下它会等到管道完成或被终止,因为它会调用 'enter' 和 'exit'函数,见https://github.com/apache/beam/blob/93c2bd8c8a7988f99a1299b9a1dd3a01122a35be/sdks/python/apache_beam/pipeline.py#L581

    你也可以试试

    p = beam.Pipeline(options=pipeline_options)
    p | ...
    p.run()
    

    应该是非阻塞的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-04-23
      • 1970-01-01
      • 2020-06-18
      • 2022-08-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多