1 回答

TA貢獻1799條經驗 獲得超8個贊
難道你不能只為你的路由器設置一個監督策略,這樣你就可以檢查導致失敗的異常類型嗎?這樣你也不需要手動重啟你的工人。
編輯:
SupervisorStrategy你這樣設置:
private static SupervisorStrategy strategy=
new OneForOneStrategy(
10,
Duration.ofMinutes(1),
DeciderBuilder.match(ArithmeticException.class,e->SupervisorStrategy.resume())
.match(NullPointerException.class,e->SupervisorStrategy.restart())
.match(IllegalArgumentException.class,e->SupervisorStrategy.stop())
.matchAny(o->SupervisorStrategy.escalate())
.build());
final ActorRef router=
system.actorOf(
new RoundRobinPool(5).withSupervisorStrategy(strategy).props(Props.create(Echo.class)));
添加回答
舉報