2012-05-22 53 views
4

我有一個akka 2.0循環路由器。現在我需要向所有路線廣播一條消息,並等待所有路線的答案。我還沒有找到辦法。首先,我有一個我傳遞給路由器的演員列表,但現在我需要從我的application.conf中加載它們。有沒有辦法等待廣播的所有消息?如果我能從配置中獲得路由的數量,那也不錯。Akka問問廣播

+2

如果我是你,我會看看ScatterGatherFirstCompletedRouter並創建一個新的ScatterGather,然後發送一個拉請求並簽署CLA :-) –

+0

Viktor,在那種情況下,回覆消息的語義是什麼是嗎?只是Iterable [<個人演員回覆>]? – questionersam

回答

2

如果您知道路線數量,那麼您通常只會計算收到的答案數量。但是,您可能想要解決超時問題,特別是在您的演員正在分佈式運行時,因爲無法保證消息真正得到傳遞。

+0

你是對的,但在這一點上,我真的需要所有的答案。如果一個失敗,整個請求失敗。 –

+0

在http://doc.akka.io/docs/akka/2.0.1/intro/getting-started-first-scala.html教程中顯示了完成此操作的基本算法。大師班幾乎就是這樣工作的。唯一缺失的位是所有操作完成的超時。但是我想這隻有在您的演員真正分佈在多個JVM和/或系統中時纔有必要。 –

+0

要獲得本教程中爲主演員實施的超時,您可以設置一個計劃程序(http://doc.akka.io/docs/akka/2.0.1/scala/scheduler.html)併發送自定義超時消息給主演員。 –