REST API에 akka-http를 사용하고 AccountActors에 akka 액터를 사용하여 통화 거래 시스템을 구축하려고합니다.AskTimeoutException : [5000 ms] 후에 시간 초과 요청
post {
(path("accounts"/"move-money") & entity(as[MoveMoneyRequest])) { moveMoneyRequest =>
complete(
(bankActor ? moveMoneyRequest).map(x => MoveMoneyResponse("Money Transfer Successful!"))
)
}
}
bankActor은 주요 애플 리케이션
val bankActor = mainActorSystem.actorOf(Props(classOf[BankingActor], accountService), name = "bankActor")
내부 BankActor 내부에 생성되고, 우리는이 :
이 def receive: Receive = LoggingReceive {
case req: MoveMoneyRequest =>
val fromAcc = createAccountActor(Some(req.fromAccount))
val toAcc = createAccountActor(Some(req.toAccount))
fromAcc ? DebitAccount(req.tranferAmount)
become(awaitFrom(fromAcc, toAcc, req.tranferAmount, sender))
}
private def createAccountActor(accountNum: Option[String]): ActorRef = {
actorOf(Props(classOf[AccountActor], accountNum, accountService))
}
질문 : 지금, 최초의 API 호출마다, 그것은 성공이다 배우가 죽거나 셧다운 된 것 같아요? (ask)는 메시지가 receive 메소드에 도달하지 않기 때문에 액터를 찾지 않습니다. 요청 전화를 다른 것으로해야합니까? 선물을 다루는
'fromAcc? DebitAccount (req.tranferAmount)'는'Future'를 생성하지만,이'Future'를 가지고 무엇인가를하는 것처럼 보이지 않습니다. 'BankActor'가'DebitAccount' 메시지를 보낼 때'fromAcc' 액터로부터 어떤 종류의 메시지를 기대합니까? – chunjef
모든 것이 작동하고 예상되는 응답이 ** ** 단 한 번 ** - 다시 전화를 걸려면 서버를 다시 시작해야하므로 정상적으로 작동합니다. 나는 서버가 다시 시작한 후에 시작하는 배우가 죽는 것 같아요 .... – boseAbhishek
'fromAcc? DebitAccount (req.tranferAmount)'with fromAcc! DebitAccount (req.tranferAmount)'. – chunjef