【问题标题】:How to increase Cloud Scheduler request timeout deadline?如何增加 Cloud Scheduler 请求超时期限?
【发布时间】: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


    【解决方案1】:

    根据他们的 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

    【讨论】:

      【解决方案2】:

      这会将作业的最后期限设置为 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

      【讨论】:

        【解决方案3】:

        当我们查看 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

        【讨论】:

        • 这对我不起作用,仍然有随机超时。添加后 --attempt-deadline=10m 成功了!
        猜你喜欢
        • 2013-01-23
        • 2021-08-03
        • 1970-01-01
        • 1970-01-01
        • 2017-04-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多