开发者社区> 问答> 正文

如何使用AKKA / Actor进行异步/同步调用

我是AkKA /演员的新手。我需要创建同步的Parent actor和两个或多个异步actor来调用一些Rest API。请给我建议哪种模式合适。告诉还是询问还是收件箱?

展开
收起
垚tutu 2019-12-04 17:12:56 1730 0
1 条回答
写回答
取消 提交回答
  • #include

    首先,Akka不建议创建阻塞演员。

    谈到您的问题,根据Akka文档(此处),

    当您不期望目标参与者(异步调用)做出响应时,将使用tell(如文档中解释的“忘却”)。例:

    actorRef ! Message // async call
    
    

    ask用于异步和同步请求。当将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}"))
    }
    
    
    2019-12-04 17:13:13
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
fibjs 模块重构从回调到协程--陈垒 立即下载
Apache Flink 流式应用中状态的数据结构定义升级 立即下载
fibjs 模块重构从回调到协程 立即下载