Я ака-нуб так извиняюсь!Akka Ask & Futures
Я играю с системой, использующей Spray и Akka. Я использую следующий фрагмент кода для отправки сообщения другому игроку. В нем используется вопрос, который, как я понял, вернет будущее, которое будет разрешено в «mapTo» и «map». Затем я возвращаю результат пользователям, использующим «полную» директиву Sprays.
val response = (worker ? Create(json))
.mapTo[Ok]
.map(result => s"I got a response: ${result}")
.recover { case _ => "error" }
complete(response)
Мой вопрос, так как это будущее, мне нужно беспокоиться о посылке правильного ответа клиента? В некоторых примерах кода я вижу примеры, когда actorRef, чтобы ответить на пересылаются как часть запроса ...
// set reply to actor
val replyTo = sender() // important to not close over sender()
// create actor that collects replies from workers
val aggregator = context.actorOf(Props(
classOf[StatsAggregator], words.size, replyTo))
Тогда в принимающем актере ...
replyTo ! SendResult
Должен ли я прохождение «replyTo» актер как часть запроса или это все позаботились в mapTo?
Заранее благодарен!
Икона 'replyTo' имеет значение только в том случае, если вы отправляете сообщение в обратном вызове будущего. – Ryan
Привет, Райан, спасибо за ответ. Не могли бы вы рассказать об этом немного? Как полностью знать, когда запускать и гарантировать, что он отвечает правильному клиенту с правильным сообщением? Он блокирует ??? Кроме того, скажем, в принимающем акте, он, в свою очередь, делегирует задание ребенку-актеру. Должен ли я использовать идиому «replyTo», или я могу снова использовать тот же шаблон, что и выше (mapTo), чтобы контролировать ответ? – fatlog