在play框架(java)中正确使用参与者
有一个关于戏剧框架内演员的问题。免责声明-我对actors/AKKA还是新手,并且花了相当长的时间阅读文档。如果以下任何问题的答案已经记录在我遗漏的地方,我表示歉意 我想验证的是,我正在为以下场景实施正确/惯用的解决方案: 案例: 使用play framework,我需要执行可能阻塞(sql查询)的代码,这样它就不会妨碍web服务器的其余部分 以下是我当前的解决方案和一些问题:在play框架(java)中正确使用参与者,java,jdbc,playframework,akka,actor,Java,Jdbc,Playframework,Akka,Actor,有一个关于戏剧框架内演员的问题。免责声明-我对actors/AKKA还是新手,并且花了相当长的时间阅读文档。如果以下任何问题的答案已经记录在我遗漏的地方,我表示歉意 我想验证的是,我正在为以下场景实施正确/惯用的解决方案: 案例: 使用play framework,我需要执行可能阻塞(sql查询)的代码,这样它就不会妨碍web服务器的其余部分 以下是我当前的解决方案和一些问题: static ActorRef actorTest = Akka.system().actorOf(
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;
}
如果您对以上内容有任何澄清,我们将不胜感激。我主要是在Akka和Play中使用Scala,因此我可能会误导您,但让我们尝试一下 首先,你可以放弃演员去完成你想要的任务。我会在将来运行计算 当您需要某种状态时,请使用用户角色。通过async mean运行查询对将来的应用很好 Futures和Actora在ExecutionContext上运行,默认的转世在Scala中通过导入和引用使用而可用。这在Java中可能有所不同,但可能不会太多。默认的ExecutionContext是在application.conf中配置的,正如您所说的