限制Play 2.1框架中的线程数

时间:2013-06-19 12:45:12

标签: scala playframework akka playframework-2.1

我正在使用Play 2.1和Scala连续运行多个测试。 我正在做Future.traverse(tests)(test => Future(runTest(test))

我想限制并行运行的测试数量,所以我想限制默认调度程序中的线程数。

我试图把

play {
  akka {
    event-handlers = ["akka.event.slf4j.Slf4jEventHandler"]
    loglevel = WARNING
    actor {
      default-dispatcher = {
        fork-join-executor {
          parallelism-factor = 1.0
          parallelism-max = 2
        }
      }
    }
  }
} 
<{1>}中的

但它似乎没有任何影响(当我运行程序时,每个核心仍有一个线程)。其他播放设置正确读取application.conf

我试图摆脱围绕它的游戏{},但它什么都没改变。

我尝试了不同的执行上下文导入但没有成功:

application.conf

当我运行应用程序时,我收到此消息,因此它似乎是使用的默认调度程序:

//import scala.concurrent.ExecutionContext.Implicits._
import play.api.libs.concurrent.Execution.Implicits._

有人知道我为什么无法配置默认调度程序吗?

谢谢!

主题列表:

[info] play - Starting application default Akka system.

8 main Reference Handler Finalizer Signal Dispatcher FSEvent thread Attach Listener play-scheduler-1 Timer-0 com.google.common.base.internal.Finalizer BoneCP-keep-alive-scheduler BoneCP-max-alive-scheduler BoneCP-pool-alive-scheduler application-akka.actor.default-dispatcher-2 application-scheduler-1 ForkJoinPool-3-worker-1 default-scheduler-1 default-scheduler-1 default-scheduler-1 default-akka.actor.default-dispatcher-3 default-akka.actor.default-dispatcher-5 default-akka.actor.default-dispatcher-3 default-akka.actor.default-dispatcher-2 default-akka.actor.default-dispatcher-5 default-pinned-dispatcher-4 play-akka.actor.default-dispatcher-2 play-akka.actor.default-dispatcher-4 Timer-1 Timer-3 Timer-4 Hashed wheel timer #1 Hashed wheel timer #2 Hashed wheel timer #3 AsyncHttpClient-Reaper AsyncHttpClient-Reaper AsyncHttpClient-Reaper default-pinned-dispatcher-4 default-pinned-dispatcher-4 New I/O boss #35 New I/O boss #44 (1到8)

8 play-internal-execution-context-(1到8)

62 iteratee-execution-context-(1到62)

1 个答案:

答案 0 :(得分:1)

您忘记的设置是parallelism-min,默认为8.但在您更改之前请考虑不使用默认调度程序:将其限制为两个线程可能会破坏系统。我建议configuring a specific dispatcher用于你的未来。