0
我正在使用以下代碼來請求和獲取遠程參與者的響應。但有時Iam得到正確的響應,但有時會得到超時異常。在同一臺機器上測試兩個角色。不知道我在做什麼錯向遠程參與者請求時獲取超時異常
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)
問題是什麼?例外並不總是意味着一個錯誤。您應該能夠配置超時,或者再次詢問。 – m0skit0
我已將超時設置爲15秒,因此我認爲不需要增加超時更多 –
此異常告訴您的唯一情況是處理'remoteControllerActor'中的消息需要超過15秒。可能你需要檢查那裏發生了什麼,而不是看看Timeout的結果。 – hasumedic