我有一個演員一旦收到消息,搜索文件系統的文件,並返回文件的完整路徑。發件人內未來
要保持它的異步,我已經做了:
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")
}
}
但我觀察到,該消息返回給akka://FileSystem/deadLetters
而不是sender
。文檔說明:
只限於演員本身,所以不要關閉它和 *發佈給其他主題!
那麼這是不是意味着,我將不得不保持同步?有沒有其他方法?
爲什麼要使用一個未來?這是一個I/O操作(等可能阻塞),這樣就把演員在阻擋-IO調度。如果您需要一次搜索多個文件,有多個實例運行。 –