Web服务仅限于单个线程?

时间:2015-06-29 15:34:29

标签: java web-services concurrency resteasy wildfly

今天,在RESTlet中测试一些速度缓慢的代码(必须等待来自慢速源的数据)时,我注意到Wildfly不允许我启动其他线程,并且只会在一个单独运行RESTlet线程也是如此,意味着多个连接必须等待前一个连接完成。

奇怪的是,即使使用通过ManagedExecutorService子系统配置的urn:jboss:domain:ee:3.0来允许更多线程,仍然只能生成一个新线程,然后按顺序处理请求。

我是否误解了该子系统应该如何工作?或者这是对RESTEasy方面的某种限制吗?我过去使用普通的WebServlet并发,而不会遇到这种行为。

1 个答案:

答案 0 :(得分:1)

也许你的问题出在客户端。你如何测试你的代码?我试图通过在某种方法中放置Thread.sleep(5000)来访问Wildfly 8.2中的一些REST服务。例如,如果我在Firefox或Chrome中打开两个选项卡,则只会同时处理一个请求,并且需要10秒。但是,并行使用Firefox和Chrom,它们都会在5秒内得到响应。