我在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入口中的错误?
感谢。
答案 0 :(得分:4)
根据documentation,cron调用的HTTP请求最多可以运行10分钟。如果您在HH:MM:SS值中密切注意到异常日志,您会发现自该作业启动以来总共已经过了10分钟。
您可能希望查看代码以了解为什么需要这么长时间。如果您的要求使您的任务运行时间超过10分钟,我建议您查看捕获异常,然后插入另一个请求来运行具有某个请求参数的作业,该参数告诉作业从上次停止的位置开始
或者,您也可以查看Backends。
答案 1 :(得分:1)
此外,您可以尝试使用任务队列(10分钟最大值)并在接近时间限制时重新入队,使用存储在数据存储区中的任何状态变量,或者如果您依赖于数据存储区中的迭代,则可以通过数据存储区游标到另一个重新排队的任务。对我来说效果很好。