【发布时间】:2014-07-16 05:42:17
【问题描述】:
我有以下代码块,它会稍微延迟调用两个请求。
final ActorRef actor1 = getContext().actorOf(
ActorClass.props(context,
"actor1");
futures.add(ask(actor1 , msg1, t));
final ActorRef actor2 = getContext().actorOf(
ActorClass.props(context,
"actor2");
futures.add(Patterns.after(Duration.create(10000, TimeUnit.MILLISECONDS),
getContext().system().scheduler() ,
getContext().dispatcher(), ask(actor2,msg2,t)));
在 actor1 和 actor2 中,我正在调用一个 REST 请求,该请求返回一个 cookie 以及响应消息。我这里的意图是延迟发送与actor2相对应的REST请求。但是我从日志中观察到的是,请求是立即从两个参与者发送的,并且只有响应处理(两个期货之间)延迟了 10 秒。这是 Akka 中调度程序的预期行为吗?如果我想在上述情况下延迟两个参与者之间的请求启动,我可以使用 Thread.sleep 吗? (我在某处读到不建议在 akka 演员中使用 Thread.sleep)。欣赏输入。
【问题讨论】:
标签: java scheduled-tasks akka