2016-12-30 4 views
2

ScalaまたはPlay Frameworkでスレッドプールメトリクスを取得する方法はありますか?私は、アクティブな接続を返すメソッドを持っていませんScala/Playスレッドプールメトリック

ExecutionContextExecutor 

にのみアクセスすることができscala.concurrent

は、タスクがカウントキューに入っなど

私はそれへのアクセス権を持つ実装をキャストすることはできません彼らはプライベートなので、エグゼクティブは

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

答えて

0

私はそのように解決:

val field: Field = Class.forName("scala.concurrent.impl.ExecutionContextImpl").getDeclaredField("executor") 
field.setAccessible(true) 
val executor: ForkJoinPool = field.get(ExecutionContext.global).asInstanceOf[ForkJoinPool] 

私はなど、それは現時点ではForkJoinPoolでのみ動作することを承知しているが、いくつかのパターンマッチングを使用して、それがで、より汎用的な作業行うことができますThreadPoolExecutorもあります。