【发布时间】:2020-07-06 07:31:21
【问题描述】:
我有一个 App Engine 应用程序,其中有一些 App Engine cron 作业耗时超过 10 分钟,因此失败(由于 App Engine cron 作业的最大时间限制为 10 分钟)。
我决定将其移至 Cloud Scheduler 并使用以下参数创建一个具有 App Engine HTTP 目标的作业。 (attempt-deadline是我尝试增加时间的参数)
gcloud beta scheduler jobs create app-engine daily-import --schedule="0 */3 * * 1" --attempt-deadline=21600s --version="test-v1" --http-method="GET" --description="Daily Import" --relative-url="/api/test"
但令我惊讶的是,该作业在 10 分钟后仍然失败,并在记录器中弹出错误消息
"进程终止,因为超过了请求期限。请 确保您的 HTTP 服务器正在侦听 0.0.0.0 上的请求,并且 在 PORT 环境变量定义的端口上。 (错误代码 123)"
请注意端点正在运行(所需的代码正在执行,但由于截止日期而在两者之间失败)。
根据scheduler doc,App Engine HTTP 目标允许的持续时间在 15 秒到 24 小时之间。
有没有人遇到过类似的问题?可能的解决方案是什么?
【问题讨论】:
标签: google-app-engine google-cloud-platform google-cloud-scheduler