Как изменить тайм-аут в составленных фьючерсах?

В примере из документации 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()

Am Я прав, что akka в этом примере создает в общей сложности четыре фьючерса?

  • По одному для каждого сообщения, отправляемого в актор1, 2 и 3
  • Один для обертывания этих трех фьючерсов

В первом случае легко изменить таймауты , например

val f1 = actor1 !!! (msg1, 15000)  // sets timeout to 15 seconds

, но как я могу установить тайм-аут для будущего переноса? Есть идеи?

6
задан Steffen 13 July 2011 в 18:45
поделиться