cs4*_*s4r 1 java multithreading scala akka
我有一个非基于actor的代码片段,它将一些操作委托给一个akka actor,我想无限期地等待这个actor的响应,我的意思是,直到这个actor在任何时间返回响应.问题是我不知道如何使用Pattern.ask和Await.result方法在Future中无限期地等待.
我会这样的:
Timeout timeout = new Timeout(Duration.inf());
Future<Object> future = Patterns.ask(actor, msg, timeout);
String result = (String) Await.result(future, timeout.duration());
Run Code Online (Sandbox Code Playgroud)
但这不起作用,因为Timeout不接受Duration对象作为构造函数参数,它只接受FiniteDuration objetcs ...
任何的想法?
干杯
小智 6
您可能永远不会收到答案,因为邮件传递不是100%保证.因此,无限期等待并不是一个好方法 - 你最终可能会永远等待.
您可能需要某种程度的超时(如果适合,可能需要很长的超时),然后根据需要重新发送请求的后备情况.这将是处理这种情况的更有力的方法.
| 归档时间: |
|
| 查看次数: |
2199 次 |
| 最近记录: |