Scala / Play线程池指标

时间:2016-12-30 08:29:33

标签: scala playframework

有没有办法在Scala或Play Framework中获取线程池指标?

scala.concurrent 中,我只能访问

ExecutionContextExecutor

没有返回活动连接,排队任务计数等的方法。

我无法将其转换为可以访问执行程序的实现,因为它们是私有的。

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

我这样解决了:

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