Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Akka-如何重新启动路由器生成的子级?_Java_Akka_Akka Supervision - Fatal编程技术网

Java Akka-如何重新启动路由器生成的子级?

Java Akka-如何重新启动路由器生成的子级?,java,akka,akka-supervision,Java,Akka,Akka Supervision,我有一个Actor,它使用路由器创建孩子。当其中一个孩子失败时。我在startegy收到了失败的通知。但是,Actor不会自行重新启动 private static SupervisorStrategy strategy = new OneForOneStrategy(10, Duration.create("1 minute"), throwable -> { Directive directive; if (throwab

我有一个
Actor
,它使用
路由器创建孩子。当其中一个孩子失败时。我在startegy收到了失败的通知。但是,
Actor
不会自行重新启动

private static SupervisorStrategy strategy = new OneForOneStrategy(10, Duration.create("1 minute"),
        throwable -> {
            Directive directive;
            if (throwable instanceof SocketTimeoutException) {
                directive = SupervisorStrategy.restart();
            } else {
                directive = SupervisorStrategy.stop();
            }
            return directive;
        });
我还发现,如果
路由器
的子节点终止,那么
路由器
不会自动生成新的子节点。而且,当路由器的所有子节点都终止时,
路由器
也会自行终止


现在是一个百万美元的问题-什么是正确的方式来重新启动由
路由器产生的子节点?

似乎您正在使用
路由器(它启动自己的子节点)。相反,您想要使用的是一个
路由器(),在这种情况下,您创建子参与者并将其提供给路由器。这意味着你负责(你作为这些路由的父参与者)完全负责它们的生命周期。因此,您可以在父级中定义监管策略,然后按照您的要求执行所有工作。

是的,我使用的是
RoundRobinPool
。我会召集一个小组,并就此回复你。非常感谢。