我有一个接收消息的actor,在文件系统中搜索文件并返回File的完整路径.
为了保持异步,我做了:
def receive = {
case s:String => {
val f = future{
val ans = search(s)
println("Input Request: "+s+" output:"+ans+" "+sender.path)
}
f.onComplete{
case Success(x) => sender ! x
case Failure(y) => println("Could not complete it")
}
}
}
Run Code Online (Sandbox Code Playgroud)
但我观察到它将消息返回给akka://FileSystem/deadLetters而不是sender.文档说:
仅在Actor本身内有效,所以不要关闭它并将其发布到其他线程!
这是什么意思,我必须保持同步?还有其他方法吗?