我是AkKA /演员的新手。我需要创建同步的Parent actor和两个或多个异步actor来调用一些Rest API。请提出哪种模式是合适的,即“告诉”或“询问”或“收件箱”?
答案 0 :(得分:1)
首先,Akka不建议创建一个阻塞演员。
关于您的问题,根据Akka文档(here)
告诉(作为文档解释“失火与忘记”),当您不期望目标参与者响应(异步调用)时使用。示例:
actorRef ! Message // async call
询问同时用于异步和同步请求。当将ask与Await一起使用时,当前角色将等待目标角色的响应,并且在异步操作时将ask与将来的任何指令一起使用。示例:
Await.result(actorRef ? Message, TimeOut(1 seconds)) // sync blocking call
onComplete(actorRef ? Message) { // async non-blocking
case Success(value) => complete(s"The result was $value")
case Failure(ex) => complete((InternalServerError, s"An error occurred: ${ex.getMessage}"))
}
参考文献: