【发布时间】:2018-02-25 05:02:40
【问题描述】:
1)
我想在一个隔离的线程池中执行特定的 Play WS。因为我将在后台执行大量 HTTP 调用,并且我不希望它使我的主执行程序服务过载。
注意:我在这里还发现了一个我不明白的信息:https://groups.google.com/forum/#!topic/play-framework/ibDf2vL3sT0 它解释说 PlayWs 已经拥有它自己的线程池。在 Play 2.6 中仍然正确吗?在阅读播放文档时我不明白这样的事情(请参阅:https://www.playframework.com/documentation/2.5.x/ThreadPools#Using-the-default-thread-pool)
我创建了自己的上下文:
call-to-db-context {
fork-join-executor {
parallelism-factor = 1
parallelism-max = 24
}
}
但是我不知道如何指定ws请求使用这个上下文。
ws.url("http://127.0.0.1:8080/b")
.get() // How to specify executorContext here ?
2)
此外,这个 call-to-db-context 必须具有低优先级,因为它是后台任务。我希望 Akka 处理用户请求具有更高的优先级,并且我的默认 executorContext 也是。最好的方法是什么?
【问题讨论】:
标签: scala playframework threadpool