与这个问题非常相关(如何防止我的 Google App Engine cron 作业耗尽我的所有实例时间? https://stackoverflow.com/questions/8670532/how-can-i-prevent-my-google-app-engine-cron-jobs-from-burning-through-all-my-ins?answertab=votes#tab-top),但不幸的是,我不仅经历了类似的事情,在 Appengine 中的 Cron 作业中创建了多个实例,这导致需要对大量实例小时进行计费。
我尝试了不同的时间间隔来确定这是否对实例小时数有影响,但目前无法确定差异。为了说明这一点,我收到了以下三个 cron 作业的 App Engine 前端实例费用:263.462 小时(仅 10 天!):
cron:
- description: Push a weather "tick" onto pubsub every 5 minutes
url: /publish/weather-tick
schedule: every 5 minutes
- description: Push a crypto "tick" onto pubsub every 5 minutes
url: /publish/crypto-tick
schedule: every 5 minutes
- description: Push a astronomy "tick" onto pubsub every 6 hours starting at 00:00
url: /publish/astronomy-tick
schedule: every 6 hours synchronized
当我将其更改为每分钟一个 cron 作业时:
cron:
- description: Push a "tick" onto pubsub every 1 minutes
url: /publish/minute-tick
schedule: every 1 minutes
I currently still get multiple instances, see:
Strangely enough, the instance went from 2 --> 3 upon changing to just one cron-job every minute.
我也很难理解为什么有 3 个实例“已创建”,而 0 个实例“正在运行”,而账单估算为 1。
与 Google 的联系可能会告诉我实例数量较多(这导致了实例小时数较多),并且我的参数设置为“自动缩放”,这允许这样做。但是,将其更改为手动会限制免费实例小时数(从 28 小时到我认为是 9 小时)。
我的情况
我正在运行 cron-jobs 来调用 Pub/Sub 事件。我有 Google Cloud 函数来监听 Pub/Sub 事件,以便我可以根据这些刻度执行数据库更新。这是继上提供的教程之后。我理解一个实例按 15 分钟计费,尽管它的生命周期较短,但我无法理解如果只执行这么小的任务,如何或为何创建多个实例。我特别感兴趣,正如相关问题(如何防止我的 Google App Engine cron 作业耗尽我的所有实例时间? https://stackoverflow.com/questions/8670532/how-can-i-prevent-my-google-app-engine-cron-jobs-from-burning-through-all-my-ins?answertab=votes#tab-top),那个人正在经历 24 小时,但预计只有一个实例。为什么我得到3?我觉得我缺少对这个过程的一些概念性理解,以及相应调整的工具。任何帮助或指示将非常受欢迎!