У меня есть актер, который при получении сообщения ищет файловую систему для файла и возвращает полный путь к файлу.
Чтобы сохранить его асинхронным, я сделал:
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
. Документация гласит, что:
Действует только в самом Актере, поэтому не закрывайте его и * публиковать его в других потоках!
Так значит ли это, мне придется обязательно поддерживать синхронность? Есть ли другой путь?