2016-11-04 43 views
1

我不確定Akka監督遵循什麼方法。Akka - 演員已被停止後是什麼?

我有一個Akka actor在消息觸發時從FTP服務器列出文件。如果連接中斷,actor將失敗,並觸發一個異常(比如IOException),這將觸發監督。在這一點上,我看到了兩個備選方案:

  • 我一直在恢復/重啓演員,直到服務器備份,可能與指數退避
  • 我的方式設置的參數(如maxNrOfRetries = XY)主管將在xy時間後放棄並停止演員

第一個策略看起來很浪費,但第二個策略似乎帶來另一個問題:演員最終會如何重新啓動?我覺得調整Backoff主管的參數是最好的選擇,但也許我錯過了一些東西?

+0

我不確定我是否理解這個問題。這兩項政策在某些情況下似乎是有效的,這取決於你想達到的目標。決定的主要觀點是什麼在等待答案?在10分鐘內回答有關嗎? 10個小時 ?如果它是一個http客戶端,放棄似乎是正確的,例如 – C4stor

回答

0

如果你需要在不知道連接何時重新啓動的情況下最終重新啓動actor,指數退避(上限爲60秒?)似乎是合理的。

這樣,如果連接剛剛丟失了幾秒鐘,並且退出了不浪費的資源,這樣就可以快速重新連接。回退的上限設置了您的演員離線的最長時間,即使連接可能已經備份。