在play框架(java)中正确使用参与者

在play框架(java)中正确使用参与者,java,jdbc,playframework,akka,actor,Java,Jdbc,Playframework,Akka,Actor,有一个关于戏剧框架内演员的问题。免责声明-我对actors/AKKA还是新手,并且花了相当长的时间阅读文档。如果以下任何问题的答案已经记录在我遗漏的地方,我表示歉意 我想验证的是,我正在为以下场景实施正确/惯用的解决方案: 案例: 使用play framework,我需要执行可能阻塞(sql查询)的代码,这样它就不会妨碍web服务器的其余部分 以下是我当前的解决方案和一些问题: static ActorRef actorTest = Akka.system().actorOf(

有一个关于戏剧框架内演员的问题。免责声明-我对actors/AKKA还是新手,并且花了相当长的时间阅读文档。如果以下任何问题的答案已经记录在我遗漏的地方,我表示歉意

我想验证的是,我正在为以下场景实施正确/惯用的解决方案:

案例: 使用play framework,我需要执行可能阻塞(sql查询)的代码,这样它就不会妨碍web服务器的其余部分

以下是我当前的解决方案和一些问题:

    static ActorRef actorTest = Akka.system().actorOf(
       Props.create(ActorTest.class));
     public static Promise<Result> runQuery() {
             Promise<Result>r = Promise.wrap(
     Patterns.ask(actorTest, query, 600000)).map(
                     new Function<Object, Result>() {
                         public Result apply(Object response) {
                             return ok(response.toString());
                         }
                     });
             return r;
         }
static ActorRef actorTest=Akka.system().actorOf(
创建(ActorTest.class));
公共静态承诺runQuery(){
Promiser=Promise.wrap(
Patterns.ask(actorTest,query,600000)).map(
新函数(){
公共结果应用(对象响应){
返回ok(response.toString());
}
});
返回r;
}
  • 现在,如果我收到许多请求,它们会简单地进入一个无限队列,因为它们是由参与者处理的吗?或者
  • 我已经阅读了一些关于我是否需要处理这个问题的文档,即制作一个路由器参与者,它将使用某种路由逻辑向子参与者发送查询?或者上述所有内容都在游戏框架中得到了处理
  • 如何配置分配给上述参与者的thred数(请参阅application.conf文件)
    如果您对以上内容有任何澄清,我们将不胜感激。

    我主要是在Akka和Play中使用Scala,因此我可能会误导您,但让我们尝试一下

    首先,你可以放弃演员去完成你想要的任务。我会在将来运行计算

    当您需要某种状态时,请使用用户角色。通过async mean运行查询对将来的应用很好

    Futures和Actora在ExecutionContext上运行,默认的转世在Scala中通过导入和引用使用而可用。这在Java中可能有所不同,但可能不会太多。默认的ExecutionContext是在application.conf中配置的,正如您所说的