请求远程actor时获取超时异常

时间:2016-08-02 12:55:32

标签: java akka

我使用下面的代码来请求和获取远程actor的响应。但有时Iam得到正确的响应,但有时会得到超时异常。测试同一台机器上的actor。不知道我做错了什么

final Timeout timeout = new Timeout(15, TimeUnit.SECONDS);
final Future<Object> future = Patterns.ask(remoteControllerActor, com, timeout);
final String result = (String) Await.result(future, timeout.duration());

以下例外:

java.util.concurrent.TimeoutException: Futures timed out after [15 seconds]
at scala.concurrent.impl.Promise$DefaultPromise.ready(Promise.scala:219)
at scala.concurrent.impl.Promise$DefaultPromise.result(Promise.scala:223)
at scala.concurrent.Await$$anonfun$result$1.apply(package.scala:116)
at scala.concurrent.BlockContext$DefaultBlockContext$.blockOn(BlockContext.scala:53)
at scala.concurrent.Await$.result(package.scala:116)
at scala.concurrent.Await.result(package.scala)

1 个答案:

答案 0 :(得分:0)

我得到了解决方案。实际上来自remoteControllerActor我正在向另一个远程actor发出另一个异步请求,而在那个远程actor中,我正在运行linux命令来获取磁盘详细信息,但是无法正确解析输出。这就是我收到超时异常的原因。