我正在研究一些涉及關閉空閑演員的邏輯。然而,這些參與者是池參與者,這意味著ReceiveTimeout訊息將發送給池中的所有參與者。
我遇到的問題是,如果池中有 5 個演員,當池收到訊息時,只有其中一個演員的超時重置。剩下的 4 個,因為他們沒有收到訊息,仍然在原來的TimeOut時鐘上,這對于框架來說是有意義的。但是對于我的用例,我希望如果池中的一個參與者收到一條訊息,則為所有人重置超時。我怎樣才能做到這一點?我想到的一種粗略的方法是,一旦池中的一個演員收到訊息,它就會向池中的其他演員發送心跳。但不確定如何在 Akka 中實作這一點。
我的演員就是這樣開始的——
Props.create(ActorA.class, () -> new ActorA()).withRouter(new SmallestMailboxPool(poolSize));
uj5u.com熱心網友回復:
通過池化演員,我假設您的意思是具有池化特征的路由器?假設,請查看檔案的特殊處理訊息處理部分下的廣播訊息。
在路由器上設定receiveTimeout,然后向處理程式中的作業人員發送一個廣播訊息,用于路由器中的超時。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/440230.html
