1

我在 appengine 项目中有 cron 设置:

<?xml version="1.0" encoding="UTF-8"?>
<cronentries>
    <cron>
        <url>/cron/someurl</url>
        <description>cron</description>
        <schedule>every monday 8:00</schedule>
        <timezone>Asia/Singapore</timezone>
    </cron>
</cronentries>

我收到错误消息:

com.google.apphosting.api.DeadlineExceededException: This request (40811df3b6350a70) started at 2012/11/26 00:00:00.404 UTC and was still executing at 2012/11/26 00:09:59.917 UTC.

运行任务有 1 分钟的限制?我虽然 cron 没有这个限制。如何避免cron条目中的错误?

谢谢。

4

2 回答 2

4

根据文档,由 cron 调用的 HTTP 请求最多可以运行 10 分钟。如果您密切注意 HH:MM:SS 值中的异常日志,您会发现自作业开始以来总共过去了 10 分钟。

您可能想查看您的代码以了解为什么要花这么长时间。如果您的要求使您的任务运行时间超过 10 分钟,我建议您查看捕获异常,然后插入另一个请求以运行带有一些请求参数的作业,该参数告诉作业从上次停止的位置开始.

或者,您也可以查看Backends

于 2012-11-26T05:50:09.260 回答
1

您也可以尝试使用任务队列(最多 10 分钟)并在接近时间限制时重新排队,使用存储在数据存储中的任何状态变量,或者如果您依赖于数据存储中的迭代,您可以传递数据存储游标到另一个重新排队的任务。对我来说效果很好。

于 2016-06-01T21:33:03.857 回答