![](/img/trans.png)
[英]How can I retry the statements that were not executed after a batch execution fails?
[英]How can I automatically retry a task executed on a GAE backend?
目前,我正在使用cron在Java后端上运行任务。
<cron>
<url>/admin/stats?action=dailyStats</url>
<description>Send daily statistics</description>
<schedule>every day 16:50</schedule>
<target>backends1</target>
<timezone>Europe/Madrid</timezone>
</cron>
后端配置了2个动态实例:
<backends>
<backend name="backends1">
<class>B2</class>
<instances>2</instances>
<options>
<dynamic>true</dynamic>
</options>
</backend>
</backends>
通常它可以正常工作,但是有时执行任务的实例会死掉而没有任何进一步的通知,因此我需要在此失败后自动重试它。
您需要在任务代码的开头添加代码,以计划任务的下一次启动(备份任务),偏移量为几秒钟(或分钟,具体取决于任务执行的时间),以执行失败。 然后,在任务代码末尾添加代码以删除此备份任务。
如果任务即将结束,请再次执行。 或者,如果任务成功完成,则备份任务将被删除。
如果您需要在GAE上重试,则应使用任务队列。 任务队列可以触发任务,并且仅在触发的任务返回成功的HTTP响应(例如200)时才完成。否则,它将重试该任务。 此外,您可以配置几个队列处理参数。 它可用于触发后端和前端中的处理。
有关更多详细信息,请参见https://developers.google.com/appengine/docs/python/taskqueue/
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.