私はメッセージを受け取るとファイルシステムを検索してファイルのフルパスを返します。未来の送信者
非同期それを維持するために、私が行っている:
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操作です(ブロックする可能性もあります)ので、アクターをblocking-ioディスパッチャーに配置してください。一度に複数のファイルを検索する必要がある場合は、複数のインスタンスを実行してください。 –