簡體   English   中英

C# - Azure Durable Function - 重新啟動編排

[英]C# - Azure Durable Function - Restart Orchestration

我正在使用持久功能。 我已經了解 Durable Functions 的工作原理,因此它有一個編排來控制流程(活動工作的順序),該編排負責活動的順序。

但目前我有一個問題,我沒有找到正確的答案,也許你可以幫助我:

想象一下,我有一個編排,有 5 個活動。 其中一項活動調用 API,該 API 將獲取作為字節數組的文檔。

如果其中一項活動失敗,編排可能會拋出異常,我可以通過代碼檢測到這一點。

此外,我還有一些重試選項,可以以 2 分鍾的間隔重試活動。 但是...如果這些重試不成功怎么辦?

由於我能夠閱讀,我可以使用“ContinueasNew”方法來重新啟動編排,但我認為存在一個問題。 如果我使用此方法在 1 小時后重新啟動編排,它會恢復原來的活動嗎?

我的意思是,如果第一個活動完成並且當我由於其中一個活動失敗而重新啟動編排時,它會像以前一樣在第二個活動中恢復嗎?

謝謝你們的時間。

如果您重新啟動編排,它不會有前一個的任何狀態。 所以第一個活動將再次運行。

如果您不想發生這種情況,則需要重試第二個直到成功。 不過我不建議讓它無限,編排應該總是在某個時候完成。 我只是將重試次數增加到足夠高的數字,這樣我就可以確信處理會在至少 99% 的情況下成功。 (您的活動失敗的可能性有多大?)然后如果它仍然失敗,您可以向隊列發送消息並讓它觸發一些警報。 然后你可以從頭開始。 如果某件事失敗了太多次以致重試量被破壞,則數據本身可能有問題,通常此時可能需要手動干預。

另一種選擇是,如果重試失敗,則從編排內部發送警報,然后等待來自管理員批准或拒絕重試的外部事件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM