是否可以保持两个GCP计划任务之间的依赖性?

时间:2019-10-27 22:26:24

标签: google-cloud-platform dependencies scheduler

我已经阅读了GCP Scheduler的文档,但是在GCP Scheduler中找不到依赖项功能。有人可以建议在两个计划任务之间是否有保持依赖的选项。

我的意思是,如果一个计划任务成功完成,那么第二个计划任务应在计划的时间开始,否则跳过运行第二个计划任务。

如果GCP计划中没有依赖项功能,还有其他方法可以实现吗?我知道可以使用GCP Cloud Composer来实现,但是还有其他方法吗?

2 个答案:

答案 0 :(得分:1)

Cloud Scheduler根据时间表触发工作。这几乎就是生活的目的。触发时间到达时,通常使用Pub / Sub或HTTP来触发其工作。您没有在故事中画出任何细节,但我将假设在时间T1,作业J1被解雇了。在时间T2,作业J2被解雇。如果作业J1失败,您不希望作业J2触发。 T2总是在T1结束后开始足够远的距离,因此不会有比赛。

如果J1失败,则不触发J2的解决方案的第一步是让J1将其完成状态写入数据存储(例如DataStore或FireStore)。当J2开始时,它可以检查最后一个J1的结果并确定是否继续。

如果您不想在您的实际代码中包含这种逻辑,则可以创建一个前端逻辑,该逻辑由执行防护检查的作业触发,然后将请求中继到你真正的逻辑。

答案 1 :(得分:1)

您可以通过结合使用云调度程序作业和云任务来完成此任务。使用云调度程序定期触发第一个作业。如果作业成功并且需要后续处理,则可以创建云任务以触发后续处理。我假设您希望这种情况在特定时间发生,并且可以通过指定scheduleTime轻松地通过云任务来实现。

https://cloud.google.com/tasks/docs/reference/rest/v2/projects.locations.queues.tasks#Task