簡體   English   中英

如何實現瞬態Actor失敗的重試?

[英]How to Implement Retry on Transient Actor Failure?

我處於一種典型的情況,我有一群工人演員正在從隊列中獲取工作。 工作人員失敗可能是暫時的,也可能是由於環境造成的,也可能是永久性的,也可能是由於工

在工作者演員里面,我正在處理永久性失敗案例,但是如何針對瞬態案例實施重試呢? 使用主管我可以讓actor重新啟動,這是嘗試重置為工作狀態的理想選擇,但是如何在失敗時重試它正在處理的消息?

謝謝!

您需要實現Command模式。 Command是一個對象,它封裝了要執行的操作及其參數,並且獨立於Actor存在。 如果Actor以可重試的方式失敗,則主管將Command重新提交給Actor。 如果Actor被提供流並處理消息,則Actor必須填充命令列表並記錄完成,以便它可以在正確的位置重新啟動。 如果流不可重繞,則必須在啟動之前排隊所有命令,並且Actor必須在每個Command上記錄完成狀態,因此可以在瞬時失敗時重新提交鏈。

Command模式還可用於實現歷史記錄和撤消。

如果您正在使用Akka 1.2或master,則可以覆蓋preRestart以獲取演員崩潰時當前的消息。

暫無
暫無

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

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