Playframework 播放2个线程池:默认池与使用Java的Akka池

Playframework 播放2个线程池:默认池与使用Java的Akka池,playframework,playframework-2.0,akka,Playframework,Playframework 2.0,Akka,根据文档,使用参与者的更简单方法是: promiseOfInt=Akka.future(新的可调用() { 公共整数调用(){ 返回; } } ); 但是doc还表示,对于javaapi,它将始终使用相同的线程池(播放默认线程池) 文件说,还有一个阿克卡演员池。 我如何将此参与者任务发送到Akka线程池,而不是阻止普通用户操作? 因此,我可以调整Akka池并保持默认池较小 谢谢, LoicJavaAkka插件(play.libs.Akka)转发给Scala插件(play.api.libs.A

根据文档,使用参与者的更简单方法是:

promiseOfInt=Akka.future(新的可调用() { 公共整数调用(){ 返回; } } );

但是doc还表示,对于javaapi,它将始终使用相同的线程池(播放默认线程池)

文件说,还有一个阿克卡演员池。 我如何将此参与者任务发送到Akka线程池,而不是阻止普通用户操作? 因此,我可以调整Akka池并保持默认池较小

谢谢,
LoicJavaAkka插件(
play.libs.Akka
)转发给Scala插件(
play.api.libs.Akka
),后者根据应用程序的配置启动一个新的Actor系统。(这就是插件的全部功能。)

因此,您可以使用基于
akka
config键的普通application.conf文件配置ActorSystem及其所有dispatcher(dispatcher也是ExecutionContext)。这些分派器是文档所指的线程池

导入
play.api.libs.concurrent.Execution.default
时使用默认线程池。这是一个只有Scala的API。在Java中,只要您接触到未来和承诺,就会自动使用这个ExecutionContext。这个线程池实际上基于Play的内部参与者系统,通过
Play
config键进行配置

总之,当通过Akka插件的ActorSystem创建时,您的所有参与者都将自动使用Akka线程池(在参与者内部,您可以使用
context.dispatcher
引用该线程池)


在演员之外,您将使用Play的默认/内部线程池。

您检查了吗?是的,我检查了,这就是我问这个问题的原因。我发现它模棱两可,有一个Akka的参与者池,但文档还说,使用Java API,它将始终使用相同的线程池(播放默认线程池)。您可以创建一个自定义ExecutionContext(即参与者的自定义池),并直接调用Akka API来使用它:,scala.concurrent.ExecutionContext),谢谢!我会检查:)但我更喜欢使用提供的Akka池,而不是创建自己的执行上下文。。。