2012-10-15 31 views
2

在Akka Java actor模型中,如果我有一個RoundRobinRouter,當它的tell()方法被調用時,我想讓路由器(作爲主)創建具有非默認構造函數的子actor,因爲我需要傳入一些參數。我怎樣才能做到這一點?在Akka Java actor模型中,路由器是否可以創建具有非默認構造函數的actor?

我知道我可以使用非默認構造函數使用Props的actor,但是當主actor是路由器時它是如何使用的?

謝謝!

回答

5

構建路由器的道具是該路由器路由的道具,而不是路由器本身。

你可以簡單地這樣做:

system.actorOf(new Props(new UntypedActorFactory() { 
    public UntypedActor create() { 
     return new MyActor("foo", "bar"); 
    } 
    }).withRouter(...)) 

而且所有的routees將類型MyActor與所謂的具體構造。

你可以用通常可以做的道具做任何事情。欲瞭解更多信息,請參閱The Akka Docs

+0

可以用來創建依賴於廣播路由器的幾個演員,其中該集合中的每個演員在構造函數中有不同的參數?我擔心演員在重新啓動後獲得相同的參數。 – Trylks

相關問題