在 akka 1.1 文档中关于 compose futures 的示例中,我想知道如何以编程方式设置生成的未来的超时。我知道我可以在akka.conf中调整全局超时,但我只想针对这段代码执行此操作。
示例代码如下所示
val f1 = actor1 !!! msg1
val f2 = actor2 !!! msg2
val f3 = for {
a: Int <- f1
b: Int <- f2
c: String <- actor3 !!! (a + b)
} yield c
val result = f3.get()
在这个例子中,akka 总共创建了四个期货,我说得对吗?
- 每条消息一个发送到 actor1、2 和 3
- 一个包裹这三个期货
在第一种情况下更改超时很容易,例如
val f1 = actor1 !!! (msg1, 15000) // sets timeout to 15 seconds
但是如何设置包装未来的超时时间?有任何想法吗?