小编sch*_*ums的帖子

我怎样才能检查Akka演员是否存在(akka 2.2)?

我有一个java对象,它不是一个使用actorSelection(Path)从actor系统中选择actor的actor.系统中可能存在所选的actor.

在Java Api中,ActorSelection不存在ask(),因此我无法向actor选择发送和识别消息并使用响应的发送者.

我试图通过演员选择向演员发送消息然后对deadletter做出反应来解决问题.但我没有任何动静.

如果演员是活着还是不存在,我如何检查ActorSelection?

ActorSystem system = ActorSystem.create("test");

//create test actor
system.actorOf(Props.create(TestActor.class), "testActor");

//add dead letter listener to the system
ActorRef eventBusActor = asys.actorOf(Props.create(EventBusActor.class), "eventbusactor");
system.eventStream().subscribe(eventBusActor, DeadLetter.class);


//This works. The test actor receives the message      
ActorSelection a1 = asys.actorSelection("/user/testActor");
a1.tell("hello", ActorRef.noSender());

//This does not work and does not send dead letters      
ActorSelection a2 = asys.actorSelection("/user/doesnotexist");
a2.tell("hello", ActorRef.noSender());

//Does not compile, because ask needs an ActorRef as first argument
ActorSelection a3 = asys.actorSelection("/user/test");
Future f = Patterns.ask(a3, new Identify(), 1000);
Run Code Online (Sandbox Code Playgroud)

java actor akka

21
推荐指数
3
解决办法
2万
查看次数

标签 统计

actor ×1

akka ×1

java ×1