【问题标题】:Google App Engine Cron not triggering endpoint at specific timesGoogle App Engine Cron 未在特定时间触发端点
【发布时间】:2019-03-19 01:40:27
【问题描述】:

我们有多个 App Engine Cron 条目触发了我们的 App Engine 应用程序,但最近我们检测到由我们的应用程序的一个端点处理的已处理事件的数量有所减少。通过查看 StackDriver 上此特定 Cron 条目的 App Engine Cron 日志,我们发现在我们调查的几天(3 月 11 日至 15 日)中,缺少条目。大多数缺失的触发因素在几天内都一致(12:15、14:15、16:15、18:15、20:15、22:15、00:15)。

下面的截图显示了某一天,红线表示缺少的条目:

没有 HTTP 状态代码不同于 200 的请求。

这是具体Cron入口的配置(因业务限制,将部分文字替换为XXX):

- description: 'Hourly job for XXX'
  url: /schedule/bigquery/XXX
  schedule: every 1 hours from 00:15 to 23:15
  timezone: UTC
  target: XXX
  retry_parameters:
    min_backoff_seconds: 2.5
    max_doublings: 5

有人可以@GCP 那边看看吗?任务名称为53751dd6a70fb9af38f49993b122b79f

【问题讨论】:

    标签: google-app-engine google-cloud-platform cron


    【解决方案1】:

    如果请求花费的时间超过一个小时,那么下一个会被跳过(即如果当前迭代仍在运行,cron 不会启动下一个迭代)

    也许在一个单独的任务中做实际的工作,然后 cron 任务唯一要做的就是启动这个单独的任务

    【讨论】:

    • 事实并非如此。这些请求大部分时间需要几秒钟。在屏幕截图中,我正在寻找操作的最后一个条目,但无论如何我都会仔细检查。而 cron 任务会做一件特定的事情,它会触发应用程序的特定端点。
    • 是的,在缺少触发器(11:15、13:15、15:15 等)之前的执行时间超过一个小时。但是为什么 App Engine Cron 会这样做呢?应用程序仍在运行,可以接受多个请求...
    • 来自 Google 的文档:“示例:对于从 10:00 到 14:00 的每 5 分钟计划,第一个作业在 10:00 开始运行,然后每 5 分钟开始运行。如果第一个作业运行 7 分钟,然后跳过 10:05 的作业,因此,Cron 服务直到 10:10 才运行此作业的另一个实例。”就是这样。谢谢亚历克斯。我们正在迁移到 Cloud Scheduler,我希望没有这个限制......
    猜你喜欢
    • 2021-10-14
    • 2013-03-07
    • 1970-01-01
    • 2019-04-14
    • 1970-01-01
    • 1970-01-01
    • 2014-04-16
    • 2014-03-20
    • 1970-01-01
    相关资源
    最近更新 更多