我一直在尝试和演员一起玩,但我遇到了问题。当我尝试将某些内容发送回给调用者时,它似乎根本没有通过,即使它正在处理不同的案例。我在父演员中收到的信息如下所示:
receive {
case (x,1) => { // case of html
println("reaches here!")
}
case (url,name,2) => {
println("doesnt reach here!")
}
case _ => println("Error on callback")
}
我的演员(处理器类)的行为方法(释义):第一个演员的行为方法将调用以下代码:
{
println()
caller ! (s,1)
println(caller)
val processUrls = new Processor(2, s.toString, caller, map, queue)
processUrls.start()
}
所以上面的工作。它产生同一个类的另一个actor,它调用不同的方法,但将它传递给同一个调用者,以便原始调用者将接收到消息。它在其行为中调用以下方法:
{
...
...
println(caller)
caller ! (url, name.get, 2)
}
到目前为止,调用者是完全相同的(在两个地方打印出来会产生完全相同的东西。
但是,当我尝试用第二种方法发回该消息时,绝对不会打印任何内容。就像来电者甚至没有收到消息一样。即使是包罗万象的 _ 案例也不会被打印出来。我不知道是怎么回事。