如何在X时间后杀死一名Akka演员?

blu*_*sky 1 java akka

是否有一种机制可以用来杀死一个演员20秒后杀死它?

阅读http://doc.akka.io/docs/akka/snapshot/java/fault-tolerance.html上的各种SuperVisor策略

似乎杀死一个演员都是基于异常的消息传递?

Chr*_*s K 6

您可以使用调度程序在20 后向actor 发送PoisonPill消息,这将在actor处理该消息时自动终止 actor; 演员中不需要额外的代码.如果你想立即杀死演员,而不是等待毒丸在消息队列中运行,那么请改用stop.

system.scheduler().scheduleOnce(Duration.create(20, TimeUnit.SECONDS),
    new Runnable() {
        @Override
        public void run() {
            testActor.tell(PoisonPill.getInstance(), ActorRef.noSender());
        }
    }, system.dispatcher());
Run Code Online (Sandbox Code Playgroud)