繁体   English   中英

如何自动重试在GAE后端执行的任务?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM