我有一個網絡工作,從互聯網抓取文件並對其進行處理。我已將它綁定到每天午夜運行的調度程序。失敗後重新運行azure webjobs,出現異常N次
有時抓取文件進程失敗並拋出一個異常,導致web作業崩潰,直到第二天再次調度。
要停止應用程序崩潰,我有一個選擇是用try-catch塊封裝它並處理錯誤。但是我希望能夠在失敗後重新運行Web作業。
有沒有辦法讓我告訴天青調度程序在失敗後重新運行任務N次?
例如,我希望在最多5次失敗5分鐘後重新運行Web作業。我不想等待排程第二天開始。
我有一個網絡工作,從互聯網抓取文件並對其進行處理。我已將它綁定到每天午夜運行的調度程序。失敗後重新運行azure webjobs,出現異常N次
有時抓取文件進程失敗並拋出一個異常,導致web作業崩潰,直到第二天再次調度。
要停止應用程序崩潰,我有一個選擇是用try-catch塊封裝它並處理錯誤。但是我希望能夠在失敗後重新運行Web作業。
有沒有辦法讓我告訴天青調度程序在失敗後重新運行任務N次?
例如,我希望在最多5次失敗5分鐘後重新運行Web作業。我不想等待排程第二天開始。
有沒有辦法告訴天青調度程序在失敗後重新運行任務N次?
Azure的計劃並沒有提供一種方法來驗證,如果「遠程」執行成功與否,但您可以使用「存儲隊列」 操作類型把消息到指定的隊列,並達到相同的網絡工作本身的行爲。 Azure Web Jobs SDK將處理傳入消息,如果引發異常並且隊列處理器可擴展(自1.1),則重試up to 5 times,因此您可以輕鬆實現指數重試策略或您需要的任何策略(通過擴展QueueProcessor和QueueProcessorFactory類)。
步驟:
[QueueTrigger("myqueue")]
),並將其配置爲「連續運行」(在VS項目,蔚藍的Web應用程序)。注:此選項需要標準層在你的Web應用程序(由於 「連續運行」)
如果我不使用隊列什麼?我試圖做的是將我的Windows服務移動到azure webjobs而不使用任何消息隊列。到目前爲止,我已經能夠實現[http://stackoverflow.com/questions/1563191/c-sharp-cleanest-way-to-write-retry-logic](http://stackoverflow.com/questions/1563191/ c-sharp-cleananest-way-to-write-retry-logic), –
順便說一句,看看https://msdn.microsoft.com/en-us/library/microsoft.practices.transientfaulthandling.aspx –