【问题标题】:AppEngine/Java Cron DeadlineExceededExceptionAppEngine/Java Cron DeadlineExceededException
【发布时间】:2016-06-02 05:33:03
【问题描述】:

我在 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 entry 报错?

谢谢。

【问题讨论】:

    标签: java google-app-engine cron


    【解决方案1】:

    根据documentation,cron 调用的 HTTP 请求最多可以运行 10 分钟。如果您仔细观察 HH:MM:SS 值中的异常日志,您会发现作业开始后总共过去了 10 分钟。

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

    或者,您也可以查看Backends

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 2013-10-24
        • 2011-01-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-11-03
        • 2013-03-14
        相关资源
        最近更新 更多