У меня есть код, не содержащий актера, который делегирует некоторые действия аккорду акки, и я хотел бы ждать ответа этого актера бесконечно, я имею в виду, пока этот актер возвращает ответ в любое время. Проблема в том, что я не знаю, как ждать бесконечно в будущем с помощью методов Pattern.ask и Await.result.Подождите ответа актера на неопределенный срок в будущем akka java
я бы что-то вроде этого:
Timeout timeout = new Timeout(Duration.inf());
Future<Object> future = Patterns.ask(actor, msg, timeout);
String result = (String) Await.result(future, timeout.duration());
, но это не работает, потому что тайм-аута не принимает объект Duration в качестве параметра конструктора, он принимает только FiniteDuration objetcs ...
Любая идея?
Приветствия
FiniteDuration исполняется по уважительным причинам. Но, как было предложено, '' новый TimeOut (Long.MAX_VALUE, TimeUnit.DAYS) '' должен дать вам достаточно времени, чтобы умереть несколько раз. –
Вы не можете переждать время больше, чем 292 года, иначе вы получите IllegalArgumentException: требование не выполнено: продолжительность обучения ограничена 292 годами. Я думаю, вы можете пройти только максимум 21474835 секунд. – Ravi
@Ravi пока правильно, что максимум 21474835 секунд, это всего лишь 248 дней (а не лет). – kap