如何在Play控制器链链接Akka消息?

时间:2016-08-22 13:23:02

标签: scala playframework-2.0 akka

在我的控制器中,我有一个方法,调用将消息传递给actor A,从A接收响应,将该响应传递给actor B,最后呈现响应。

代码看起来像这样

def abc(userId: String): Action[AnyContent] = Action.async(implicit request => {
implicit val timeout: Timeout = 5.seconds
(AActor ? ARequest(userId)).mapTo[AResponse].map { aResponse =>
      aResponse.ar match {
        case Some(x) => {
          ((BActor ? BRequest(x)).mapTo[BResponse].map { bResponse =>
            (bResponse.br).map(o => Ok(Json.toJson(o))).getOrElse(BadRequest("not found"))
      })
    }
    case None => BadRequest(Messages("not found"))
  }
}
}

我收到以下错误消息

Found: scala.concurrent.Future[play.api.mvc.Result] Required: play.api.mvc.Result

我理解,在Some(x)的情况下,它希望函数返回一个结果,但如果我想链接消息,我应该怎么做呢?

谢谢,

UTSAV

0 个答案:

没有答案