Google Cloud Scheduler 在每天的特定时间后启动任务,但前提是 Pub/Sub 消息到达
Google Cloud Scheduler to start a task after a specific time every day, but only if a Pub/Sub message arrives
是否可以在 Google 云中实现调度程序与 pub/sub 之间的互操作性,以便在特定时间 之后触发任务每天,但仅当 有消息到达时?
更新:
示例是为 10:00 安排的任务正在等待消息(先决条件)。
- 在 10:00 时,消息尚未到达。作业未被触发。消息到达 11:00。作业被触发。 (然后它可以发送一个消息来启动要执行的任务)
- 在 09:00 消息到达。作业未执行。在 10:00 时触发作业。
- 消息从未到达。永远不会执行作业。
Google 推荐的做法是使用 Google Cloud Composer 这样的任务。
您可以将云作曲器用于各种用例,包括批处理、实时/流处理和 cron 作业/计划任务样式处理。
https://cloud.google.com/composer/
在引擎盖下,Composer 运行在托管的 GKE 集群上使用 Apache Airflow。因此,它不仅是编排工具,而且还提供了使用 DAG(本质上是云函数)运行 代码的能力。看看下面的一些示例 DAG 触发器:
https://cloud.google.com/composer/docs/how-to/using/triggering-with-gcf
所以基本上,如果您创建一个条件 DAG 触发器,那么它应该可以解决问题。
希望对您有所帮助。
您的拼图似乎非常适合使用 Cloud Tasks。在高层次上,我会想象您编写了一个 Cloud Functions 来订阅正在发布的主题。 Cloud Function 将包含您的处理逻辑:
- 10:00am 后收到,运行 立即工作。
- 在 10:00am 之前收到,使用 Cloud Tasks post 一项任务 运行 您在 10:00am 的工作。
...就是这样。
是否可以在 Google 云中实现调度程序与 pub/sub 之间的互操作性,以便在特定时间 之后触发任务每天,但仅当 有消息到达时?
更新:
示例是为 10:00 安排的任务正在等待消息(先决条件)。
- 在 10:00 时,消息尚未到达。作业未被触发。消息到达 11:00。作业被触发。 (然后它可以发送一个消息来启动要执行的任务)
- 在 09:00 消息到达。作业未执行。在 10:00 时触发作业。
- 消息从未到达。永远不会执行作业。
Google 推荐的做法是使用 Google Cloud Composer 这样的任务。
您可以将云作曲器用于各种用例,包括批处理、实时/流处理和 cron 作业/计划任务样式处理。
https://cloud.google.com/composer/
在引擎盖下,Composer 运行在托管的 GKE 集群上使用 Apache Airflow。因此,它不仅是编排工具,而且还提供了使用 DAG(本质上是云函数)运行 代码的能力。看看下面的一些示例 DAG 触发器:
https://cloud.google.com/composer/docs/how-to/using/triggering-with-gcf
所以基本上,如果您创建一个条件 DAG 触发器,那么它应该可以解决问题。
希望对您有所帮助。
您的拼图似乎非常适合使用 Cloud Tasks。在高层次上,我会想象您编写了一个 Cloud Functions 来订阅正在发布的主题。 Cloud Function 将包含您的处理逻辑:
- 10:00am 后收到,运行 立即工作。
- 在 10:00am 之前收到,使用 Cloud Tasks post 一项任务 运行 您在 10:00am 的工作。
...就是这样。