【发布时间】:2020-08-18 12:50:38
【问题描述】:
我目前每周在树莓派上运行 2 个脚本,配置如下:
Cron 每周在固定时间执行一个 python 脚本。这个 python 脚本等待 0 到 50 个小时,然后运行 python 脚本 A。它等待大约 16 个小时,然后每 8 小时再次运行脚本 A 3 次(该脚本第一次运行需要大约 4 倍的时间)。第 4 次运行 8 小时后,它运行脚本 B。
我想将我的脚本移至 Google Cloud VM 以提高可靠性,但为了在 100 小时内运行 30 小时的计算而全天候 24/7 运行 VM 效率低且成本高。
我知道我可以使用 Google Scheduler 作为我的 cron 来每周启动 VM,但我仍然冒着让它运行长达 50 小时等待脚本 A 运行的风险。我了解 cron 支持添加example here 中列出的随机睡眠间隔:
30 8-21/* * * * sleep ${RANDOM:0:2}m ; /path/to/script.php
但是,据我发现,Google Cloud Scheduler 被限制为 60 分钟,这是理所当然的。在这种情况下,我有什么选择? Google Cloud Task 是否支持延迟触发 VM(最长 50 小时)?这是 Pub Sub 会支持的东西吗?
我的脚本使用了一个我认为与 Google App Engine 不兼容的 python 库,因此我还需要弄清楚如何在触发时触发 VM 中的特定脚本。
【问题讨论】:
-
只运行了 VM 成本的定价计算器:在我的 pi 上运行 24/7,在 Google VM f1-micro 和公共 ip 上运行每月需要 12.85 美元。使用 Google 调度程序以每周固定的时间运行 100 小时的周期为 4.55 美元/月。将 50 小时延迟随机化以运行我的自定义调度程序,剩余的 50 小时周期为 2.45/月。仅运行所需的 30 个处理小时的流程是每月 1.50 美元。
标签: python-3.x google-cloud-platform cron google-cloud-scheduler