В примере из документации akka 1.1 о составлении фьючерсов мне интересно, как можно программно установить время ожидания сгенерированного будущего. Я знаю, что могу настроить глобальное время ожидания в 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 создает всего четыре фьючерса?
- По одному на каждое сообщение, отправленное актеру1, 2 и 3
- Один, чтобы обернуть эти три будущего
В первом случае легко изменить время ожидания, например,
val f1 = actor1 !!! (msg1, 15000) // sets timeout to 15 seconds
но как я могу установить таймаут для будущего упаковки? Есть идеи?