簡體   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