Playframework 播放2一次处理1个请求
我面临的情况是,我的应用程序正在处理队列中的请求,即一次处理一个请求。当一个请求完成时,另一个请求开始执行,依此类推。为了模拟这一点,我开发了一个小代码 我在一个新的应用程序中使用默认播放设置尝试了这个场景。我试图在浏览器的不同选项卡上多次模拟加载和点击url 这是我的Akka配置 akka.actor.default-dispatcher.fork-join-executor.pool-size-max=64 //这是我的控制器动作Playframework 播放2一次处理1个请求,playframework,playframework-2.0,Playframework,Playframework 2.0,我面临的情况是,我的应用程序正在处理队列中的请求,即一次处理一个请求。当一个请求完成时,另一个请求开始执行,依此类推。为了模拟这一点,我开发了一个小代码 我在一个新的应用程序中使用默认播放设置尝试了这个场景。我试图在浏览器的不同选项卡上多次模拟加载和点击url 这是我的Akka配置 akka.actor.default-dispatcher.fork-join-executor.pool-size-max=64 //这是我的控制器动作 import play.api.libs.concurren
import play.api.libs.concurrent.Execution.Implicits._
def sayHello = Action { implicit request =>
println("before")
Async {
Thread.sleep(20000)
WS.url("http://www.example.com").get().map { response =>
// This code block is executed in the imported default execution context
// which happens to be the same thread pool in which the outer block of
// code in this action will be executed.
Ok("The response code was " + response.status)
}
}
}
行为是相同的…后续请求直到前一个请求完成,即一次只执行一个请求,才会开始执行
Akka版本2.3.0(尽管它与2.2.3的工作原理相同)
播放版本2.2.1
在这里寻求社区的帮助……还是我做错了什么
![Thread details][1]
RMI TCP Accept-04:58.094(100.0%)0.0(0.0%)0.0(0.0%)0.0(0.0%)4:58.094
附加侦听器4:58.094(100.0%)0.0(0.0%)0.0(0.0%)0.0(0.0%)4:58.094
螺纹-7 4:58.094(100.0%)0.0(0.0%)0.0(0.0%)0.0(0.0%)4:58.094
螺纹-6 4:58.094(100.0%)0.0(0.0%)0.0(0.0%)0.0(0.0%)4:58.094
过程收割机4:58.094(100.0%)0.0(0.0%)0.0(0.0%)0.0(0.0%)4:58.094
信号调度员4:58.094(100.0%)0.0(0.0%)0.0(0.0%)0.0(0.0%)4:58.094
主旋律4:58.094(100.0%)0.0(0.0%)0.0(0.0%)0.0(0.0%)4:58.094
RMI TCP连接(2)-192.168.5.29 4:57.261(100.0%)0.0(0.0%)0.0(0.0%)0.0(0.0%)4:57.261
RMI TCP连接(1)-192.168.5.29 2:42.952(68.1%)0.0(0.0%)1:16.078(31.8%)0.0(0.0%)3:59.030
JMX服务器连接超时52 0.0(0.0%)0.0(0.0%)4:58.094(100.0%)0.0(0.0%)4:58.094
RMI调度程序(0)0.0(0.0%)0.0(0.0%)4:58.094(100.0%)0.0(0.0%)4:58.094
螺纹-40.0(0.0%)0.0(0.0%)4:58.094(100.0%)0.0(0.0%)4:58.094
终结器0.0(0.0%)0.0(0.0%)4:58.094(100.0%)0.0(0.0%)4:58.094
参考处理程序0.0(0.0%)0.0(0.0%)4:58.094(100.0%)0.0(0.0%)4:58.094
问候,
Marut测试此项时,请确保您正在生产模式下运行:
播放开始
并根据文档仔细检查线程配置:
您需要确保已根据一次要处理的阻塞请求数量调整线程池的大小。您可以使用
jvisualvm
查看线程使用情况。谢谢您的提示,James..尽管我发现问题出在Chrome浏览器上。狩猎时的行为是不同的。我甚至用JMeter进行了负载测试,没有什么出人意料的。我仍然需要弄清楚为什么ChromeI使用ApacheBench在应用程序中抛出一堆请求是特定的。