我们有一个servlet,它在下载文件时占用服务器上更多的虚拟内存。出于这个原因,我们想限制对此服务器的并发请求,例如我们只想要并行处理10个请求。我们希望其他请求在队列中等待。

是否可以创建自定义线程池,并将其配置为定义最大线程数并为此servlet分配以处理此方案?我们正在使用WebLogic Server 9.2。或者还有其他更好的方法吗?感谢任何想法。

我们是否可以配置一个单独的servlet并将线程池配置为仅允许X个并发请求,所有其他请求将被放入队列以使用下一个可用的servlet。这种方法是否会引发超时错误?你能否分享一下这方面的更多细节?谢谢

http:// download .oracle.com / docs / cd / E13222%5F01 / wls / docs92 / perform / appb%5Fqueues.html

有帮助吗?

解决方案

  

是否可以创建自定义线程池并为此servlet分配以处理此方案?我们正在使用WebLogic Server 9.2。或者还有其他更好的方法吗?感谢任何想法。

是的,这是可能的。而不是使用默认的自我调整工作经理(从Weblogic 9.x开始,执行队列被线程池 1 的工作管理器替换),您可以创建一个具有特定约束,如 max-threads-constraint 和可能是 capacity 。然后,您可以使用 weblogic.xml 部署描述符文件的noreferrer“> wl-dispatch-policy


1 请注意,仍然可以启用 WebLogic 8.1线程池模型并使用执行队列。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top