google-app-engine - Google App Engine cron 作业失败且不重试
问题描述
我有一个简单的 cron.xml 文件,用于运行不同的作业。我将它部署到应用引擎,它可以无缝运行数周。每个人都会时不时地 cron 失败并出现以下错误。奇怪的是它不会重试,即使我有重试参数。
我还注意到,在我重新部署我的应用程序之前,所有后续的 cron 作业都会失败。
错误:
Process terminated because the request deadline was exceeded. (Error code 123)
Cron.xml
<cron>
<url>/conrurl</url>
<description>Cron Description</description>
<schedule>every 30 minutes from 06:00 to 22:00</schedule>
<retry-parameters>
<min-backoff-seconds>2.5</min-backoff-seconds>
<max-doublings>5</max-doublings>
</retry-parameters>
<timezone>America/Montreal</timezone>
<target>backend</target>
</cron>
解决方案
对我来说,这看起来像是 HardDeadlineExceededError(请参阅下面的文档片段和链接)。
cron 作业运行需要多长时间?如果我看到超过最后期限的错误并且无法从其他来源获得时间信息,我将使用基本计时器包装我的函数以找出答案。我写的Java不多,但这里有一个例子:https ://www.geeksforgeeks.org/measure-time-taken-function-java/
在 Java 运行时中,如果没有捕获到 DeadlineExceededException,则会抛出无法捕获的 HardDeadlineExceededError。该实例在这两种情况下都会终止,但 HardDeadlineExceededError 不会提供任何时间余量来返回自定义响应。
推荐阅读
- python-3.x - 对于分类问题 - 当我在拟合函数中遇到错误时,我正在尝试 Logistic 回归分类器解决方案
- ansible - 使用 Ansible 更新根 crontab
- glibc - libc 和未定义的符号:stime
- mongodb - MongoDB 条件更新
- django-views - 预期的 str、bytes 或 os.PathLike 对象,而不是 InMemoryUploadedFile 如何可能并解释正确的方法
- android - Kotlin 中的简单登录活动
- javascript - 如何显示离开站点?仅在函数完成执行后才在卸载事件前提示
- python - 如何从一个 panda.series 行中获取与第二行中的特定值相对应的所有值?
- python - 我如何在 discord.py 中改进我的练级系统
- python - 构建pypiwin32失败