1
OneForOneStategyを使用して、子がスローするときに子が再起動するようにするRoundRobinPoolがあります。akka.netのみプール内の単一のルートを再起動
var strat = new OneForOneStrategy(1, TimeSpan.FromSeconds(5), e => Directive.Restart);
var props = Props.Create<ThrowAlwaysActor>()
.WithRouter(new RoundRobinPool(2))
.WithSupervisorStrategy(strat);
var router = system.ActorOf(props, "myrouter");
router.Tell("1");
出力:
唯一の例外を投げrouteeを再起動し、再起動なっプール全体を避けるために、ラウンドロビンプールを設定する方法akka://loadSystem/user/myrouter/$b PRERESTART <-- pool init
akka://loadSystem/user/myrouter/$a PRERESTART <-- pool init
akka://loadSystem/user/myrouter/$a OnReceive()
[ERROR][8/21/2016 8:21:02 AM][Thread 0004][akka://loadSystem/user/myrouter] The method or operation is not implemented.
akka://loadSystem/user/myrouter/$a PRERESTART <-- the actor that threw is being restarted
akka://loadSystem/user/myrouter/$b PRERESTART <-- this actor should not be restarted
私はこのようなルータを作成しています。