【发布时间】:2019-09-16 08:33:53
【问题描述】:
我想从 App Engine Cron 作业迁移到 Cloud Scheduler,但在 Cloud Scheduler 中,请求截止时间超时为 60 秒,而不是来自 Cron 作业的请求的 10 分钟。
有没有办法将 Cloud Scheduler App Engine 请求的截止时间设置为 10 分钟?
【问题讨论】:
标签: google-app-engine google-cloud-scheduler
我想从 App Engine Cron 作业迁移到 Cloud Scheduler,但在 Cloud Scheduler 中,请求截止时间超时为 60 秒,而不是来自 Cron 作业的请求的 10 分钟。
有没有办法将 Cloud Scheduler App Engine 请求的截止时间设置为 10 分钟?
【问题讨论】:
标签: google-app-engine google-cloud-scheduler
根据他们的 scheduler.v1beta1,可以使用 attemptDeadline 设置截止日期。
作业尝试的截止日期。如果请求处理程序在此截止日期前没有响应,则取消请求并将尝试标记为 DEADLINE_EXCEEDED 失败。失败的尝试可以在执行日志中查看。 Cloud Scheduler 会根据 RetryConfig 重试作业。
此截止日期允许的持续时间是:
对于 HTTP 目标,介于 15 秒和 30 分钟之间。 对于 App Engine HTTP 目标,介于 15 秒和 24 小时之间。 对于 PubSub 目标,此字段将被忽略。
https://cloud.google.com/nodejs/docs/reference/scheduler/0.3.x/google.cloud.scheduler.v1beta1#.Job
【讨论】:
这会将作业的最后期限设置为 30 分钟。这是 HTTP 目标的最大值。
gcloud beta scheduler jobs update http <job> --attempt-deadline=1800s --project <project>
此截止日期允许的持续时间是:对于 HTTP 目标,介于 15 秒和 30 分钟之间。对于 App Engine HTTP 目标,介于 15 秒和 24 小时之间。 以秒为单位的持续时间,最多九个小数位,以“s”结尾。示例:“3.5 秒”。
来源:https://cloud.google.com/scheduler/docs/reference/rest/v1/projects.locations.jobs#Job
【讨论】:
当我们查看 Cloud Scheduler 时,我们会看到当达到触发作业的时间时,触发该作业的请求可能会失败。此时,将根据该作业的配置重试请求……请参阅:
https://cloud.google.com/sdk/gcloud/reference/beta/scheduler/jobs/create/http
在这些设置中,我们发现:
--max-backoff--max-doublings--max-retry-attempts--max-retry-duration--min-backoff如果我们想继续尝试整整 10 分钟,我们似乎可以指定:
--max-backoff: 0s--max-doublings: 0--max-retry-attempts: 0--max-retry-duration: 10m--min-backoff: 0s【讨论】: