Ich verwende unten Code zum Anfordern und Erhalten von Antwort von Remote-Actor. Aber irgendwann bekomme ich die richtige Antwort, aber manchmal bekomme ich eine Zeitüberschreitung. Testen Sie den Akteur auf der gleichen Maschine. Ich weiß nicht, was ich tue, falschTimeout-Ausnahme bei Anforderung an Remote-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());
Unter Ausnahme:
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)
Was ist die Frage? Eine Ausnahme bedeutet nicht immer einen Fehler. Sie sollten Timeout konfigurieren können oder einfach erneut fragen. – m0skit0
Schon habe ich Timeout auf 15 Sekunden eingestellt, also denke ich, dass es keine Notwendigkeit gibt, das Zeitlimit zu erhöhen mehr –
Das einzige, was diese Ausnahme Ihnen sagt, ist, dass die Verarbeitung der Nachricht in Ihrem 'remoteControllerActor' mehr als 15 Sekunden dauert. Wahrscheinlich müssen Sie überprüfen, was dort vor sich geht, anstatt nur das Ergebnis eines Timeouts zu betrachten. – hasumedic