我需要將一系列遠程調用切成塊。我想到了使用演員。如何讓scala參與者報告任務完成?
我認爲是這樣的:
class ControlActor() extends Actor{
var counter = 1000
def act{
for (i <- 1 until 1000) { new RequestActor(this) start }
while(true){
receive{
case "Stop" =>{counter = counter-1; if(counter==0){return}}
}
}
}
}
class RequestActor(parent:ControlActor) extends actor{ ... }
但是這有一個明顯的問題:當我進入收到塊,一些RequestActor情況下,可能已經執行完畢。如果他們向尚未處於消息接收狀態的演員發送消息,會發生什麼情況?消息是排隊還是被丟棄?
最重要的是:如何創建小演員是能夠通知創建它們的演員,即使他們返回速度非常快?
此外相關:將當前actor實例(this
)傳遞給其他參與者是否是一種好的做法?出於某種原因,我沒有看到有人這樣做。
正如我告訴大家使用斯卡拉演員的問題,看看阿卡。它有非常高的真棒。 – leedm777 2012-03-30 03:26:12