这是我的代码:
class testActor extends Actor {
var test = "test2"
def receive = {
case "test" ?
"works"
}
}
def test = Action {
var test = "test"
val system = ActorSystem("MySystem")
val myActor = system.actorOf(Props[testActor.testActor], name = "testActor")
test = Await.result(myActor ? "test", Duration(1, TimeUnit.SECONDS))
}
Run Code Online (Sandbox Code Playgroud)
我收到这行错误:
test = Await.result(myActor ? "test", Duration(1, TimeUnit.SECONDS))
Run Code Online (Sandbox Code Playgroud)
错误是:
找不到参数超时的隐含值:akka.util.Timeout
bra*_*don 13
添加类似的东西implicit val timeout = Timeout(5 seconds).见http://doc.akka.io/docs/akka/2.0.1/scala/futures.html
顺便说一下,你还需要改变
def receive = {
case "test" ? sender ! "works"
}
Run Code Online (Sandbox Code Playgroud)
和
test = Await.result(myActor ? "test", timeout.duration).asInstanceOf[String]
Run Code Online (Sandbox Code Playgroud)