如何使用akka配置为路由器设置默认监管策略?
这是有效的吗?
actor {
deployment {
default {
supervisor-strategy = "akka.actor.DefaultSupervisorStrategy"
}
/my-router {
router = balancing-pool
nr-of-instances = 3
}
}
}
答案 0 :(得分:0)
经过一段时间的搜索,我很惊讶地说我认为不可能这样做。
如果您查看reference.conf,您会发现没有这样的属性,如果不是监护人(/ user)。
我担心你必须按照here所述的方式进行编程。
您的配置有效,但是可以从代码访问的属性(主管策略)将被akka忽略。
我很高兴被这个人证明是错的。
答案 1 :(得分:0)
正如@Diego Martinoia所说,在当前版本的akka中似乎没有可能通过路由器中的配置来设置监督策略,但是你可以混合路由器的配置并以编程方式定义策略,一个java例如:
final SupervisorStrategy strategy = new OneForOneStrategy(10, Duration.create(1, TimeUnit.MINUTES),
Collections.<Class<? extends Throwable>>singletonList(Exception.class));
ActorRef router = system.actorOf(ApiAiActor.props(Http.get(system)).withRouter(FromConfig.getInstance()
.withSupervisorStrategy(strategy)),"router");
在配置中,您可以使用以下内容:
akka {
actor.deployment {
/router {
router = round-robin-pool
nr-of-instances = 5
}
}
}