gcloud 数据流排空命令等待作业完成排空

gcloud Dataflow Drain Command Wait Until Job Finished Draining

我目前正在构建 cd 管道,用带有 bash 命令的新管道替换现有的 Google Cloud Dataflow 流媒体管道。新旧有同名的工作。我这样写 bash 命令

gcloud dataflow jobs drain "${JOB_ID}" --region asia-southeast2 && \
gcloud dataflow jobs run NAME --other-flags

此命令的问题是第一个命令不会等到作业完成耗尽,因此第二个命令会抛出错误,因为重复的作业名称。

有没有办法等到数据流作业完成耗尽?或者有什么更好的方法吗? 谢谢!

鉴于此 post 没有引起任何关注,我将 post 将我的评论作为 post:

数据流作业与命令 gcloud dataflow jobs run 异步,因此当您使用 && 时,您唯一需要等待的就是命令完成,因为该命令只是启动进程(无论是耗尽一份工作还是 运行 一个)它比 job/drain 完成得早。

有几种方法可以等待 job/drain 完成,这两种方法都会增加一些成本:

  1. 您可以使用 Pub/Sub 步骤作为更大数据流作业的一部分(将其视为您正在耗尽的作业和 运行 的父级,以及您正在耗尽的作业或 运行 向 Pub/Sub 发送有关其状态更改的消息)- 您可以在 [此处] 找到 Pub/Sub 的费用。
  2. 您可以设置某种循环来重复检查您正在 draining/running 的工作的状态,可能在 bash 脚本中,尽管这可能有点乏味并且不像监听器那么整洁,它需要自己的 computer/connection 或 GCE 实例来维护。