我正在进行磁盘密集型操作,我想使用自己的线程池,而不是默认的。
我阅读了以下链接,我面临着同样的问题 Akka :: dispatcher [%name%] not configured, using default-dispatcher
但是我的配置文件略有不同,我已经尝试了这个建议,但它没有用。
我的application.conf
有以下内容
jpa-execution-context {
thread-pool-executor {
core-pool-size-factor = 10.0
core-pool-size-max = 10
}
}
然后在我的测试代码中我执行以下操作,但是我得到了一个例外。这是测试方法
private def testContext():Future[Int] = {
val system = ActorSystem.create()
val a = ActorSystem.create()
implicit val executionContext1 = system.dispatchers.lookup("jpa-execution-context")
Future{logger.error("inside my new thread pool wonderland");10}{executionContext1}
}
以下是例外:
akka.ConfigurationException: Dispatcher [jpa-execution-context] not configured
答案 0 :(得分:1)
我认为您忘记了配置中的一些元素:
jpa-execution-context {
type = Dispatcher
executor = "thread-pool-executor"
thread-pool-executor {
core-pool-size-factor = 10.0
core-pool-size-max = 10
}
}
文档链接:http://doc.akka.io/docs/akka/current/scala/dispatchers.html#types-of-dispatchers