当尝试运行下面的代码时:
ActorRef parserActor1 =system.actorFor("akka://<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="9cccfdeeeff9eeddffe8f3eeefcfe5efe8f9f1dcadacb2acb2acb2a5" rel="noreferrer noopener nofollow">[email protected]</a>:2552/user/ParserMainActor");
System.out.println("*$^%$^%$^"+parserActor1);
parserActor1.tell("Please parse!", mainActor);
第一行和第二行运行良好 - 这意味着远程处理运行良好(我认为)。 在第三行,我收到错误“发送消息期间吞没异常”。
我正在使用 akka-remote 版本 2.1.1。可能是什么问题?
application.conf 包含:
akka {
actor {
provider = "akka.remote.RemoteActorRefProvider"
}
remote {
transport = "akka.remote.netty.NettyRemoteTransport"
netty {
hostname = "10.0.0.8"
port = 2552
}
}
}
这是确切的错误:“[错误] [03/06/2013 16:15:42.129] [新 I/O 工作线程 #1] [akka://[email protected] :2552/user/ParserMainActor] 吞咽消息发送过程中出现异常 java.lang.IllegalStateException: I/O 线程中的await*() 导致死锁或性能突然下降。请改用 addListener() 或从不同的线程调用 wait*()。”
非常感谢, 阿维亚德
最佳答案
您遇到了 Play 与 Akka 远程处理合作暴露的 Netty 怪癖:http://play.lighthouseapp.com/projects/82401-play-20/tickets/1042-Netty-pipeline-needs-an-executionHandler
关于playframework - Akka Actor 远程不起作用(在 Play 框架中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15251821/