Google Cloud Scheduler的延迟或随机任务



我目前每周在树莓派上运行两个脚本,配置如下:

Cron每周在固定时间执行一个python脚本。这个python脚本等待0到50个小时,然后运行python脚本A。它等待大约16个小时,每8小时再运行脚本A 3次(第一次运行脚本需要大约4倍的时间(。第4次运行8小时后运行脚本B.

我想把我的脚本移到谷歌云虚拟机上以提高可靠性,但在100小时内全天候运行虚拟机来运行30小时的计算既低效又昂贵。

我知道我可以使用Google Scheduler作为我的cron每周启动VM,但我仍然冒着让它运行长达50个小时等待脚本A运行的风险。据我所知,cron支持添加随机睡眠间隔,如下例所示:

30 8-21/* * * * sleep ${RANDOM:0:2}m ; /path/to/script.php

然而,根据我的发现,谷歌云调度程序被限制在60分钟内,这是理所当然的。在这种情况下,我有什么选择?谷歌云任务是否支持延迟触发虚拟机(最多50小时(?这是Pub Sub会支持的吗?

我的脚本使用了一个python库,我认为它与谷歌应用程序引擎不兼容,所以我需要进一步了解如何在触发器上触发虚拟机中的特定脚本。

您可以使用Cloud Scheduler和Pub/Sub来触发一个云函数,该函数将启动您的VM并执行您的脚本。如果您不希望计算引擎实例全天候运行,那么在脚本结束时,您可以让云功能停止VM。

您可以在这里找到如何使用Cloud Scheduler调度计算实例,以及如何使用Cloud Function中的HTTP函数来启动和停止计算引擎实例[1]。

最重要的是,这里有关于如何使用Cloud Scheduler和Pub/Sub来触发Cloud函数的文档[2]。

[1]https://cloud.google.com/scheduler/docs/start-and-stop-compute-engine-instances-on-a-schedule

[2]https://cloud.google.com/scheduler/docs/tut-pub-sub

[3] 云功能:https://cloud.google.com/functions/docs/concepts/overview

最新更新