0

是否可以在 Google Cloud 中实现调度程序和发布/订阅之间的互操作性,以便在每天特定时间后触发任务,但前提是消息到达?

更新:

例如,安排在上午 10:00 的任务等待消息(先决条件)。

  1. 10:00 消息还没到。作业未触发。消息在 11:00 到达。作业被触发。(然后它可以发送一个消息来启动要执行的任务)
  2. 09:00 消息到达。作业未执行。10:00 触发作业。
  3. 味精永远不会到达。该作业永远不会执行。
4

2 回答 2

1

您的拼图似乎非常适合使用Cloud Tasks。在高层次上,我会想象您编写一个订阅正在发布的主题的云函数。Cloud Function 将包含您的处理逻辑:

  1. 上午 10:00 后收到,立即运行您的工作。
  2. 在上午 10:00 之前收到,使用 Cloud Tasks 发布任务以在上午 10:00 运行您的工作。

……就是这样。

于 2019-12-06T16:44:35.673 回答
1

Google 推荐的做法是使用 Google Cloud Composer 这样的任务。

您可以将云作曲家用于各种用例,包括批处理、实时/流处理和 cron 作业/计划任务样式处理。

https://cloud.google.com/composer/

Composer 在后台运行 Apache Airflow 在托管 GKE 集群上。因此,它不仅是编排工具,而且还提供了使用 DAG(本质上是云功能)运行代码的能力。看看下面的一些示例 DAG 触发器:

https://cloud.google.com/composer/docs/how-to/using/triggering-with-gcf

所以本质上,如果你创建一个条件 DAG 触发器,那么它应该可以解决问题。

希望这可以帮助。

于 2019-12-06T12:11:42.427 回答