3

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
        }
      }
    }
  }
} 

しかし、application.confそれは何の効果もないようです(プログラムを実行すると、コアごとに1つのスレッドがまだあります)。はapplication.conf、他の再生設定に対して正しく読み取られます。

周囲の遊びを取り除こうとしましたが、何も変わりません。{}

実行コンテキストのさまざまなインポートを試みましたが、成功しませんでした:

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

アプリケーションを実行すると、次のメッセージが表示されるため、使用されているのはデフォルトのディスパッチャーのようです。

[info] play - Starting application default Akka system.

デフォルトのディスパッチャーを構成できない理由を誰かが知っていますか?

ありがとうございました!

スレッドのリスト:

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

そして 8 play-internal-execution-context-(1 から 8)

そして 8 iteratee-execution-context-(1 から 8)

と 62 New I/O worker #(1 ~ 62)

4

1 に答える 1

1

忘れていた設定はparallelism-min、デフォルトで 8 です。しかし、変更する前に、この目的でデフォルトのディスパッチャを使用しないことを検討してください。2 つのスレッドに制限すると、システムが壊れる可能性があります。Future に使用する特定の Dispatcher を設定することをお勧めします。

于 2013-06-24T07:34:31.557 に答える