在不同的war之间共享线程池



在Tomcat 8服务器中,我们有几个WAR项目需要线程池来执行任务(特别是调度器和并行处理,以提高性能)。

由于每个线程池处理它们自己的线程,它最终向容器中添加了太多线程,因此出现了一个明显的问题:是否有可能以某种方式与Tomcat中的几个war项目共享一个线程池?

池是Spring的调度器和标准Java ThreadPoolExecutor的混合,但我想如果需要的话,它们可以标准化为单一类型。

PS:这对执行器(线程池)有帮助吗?

您可以将单个ThreadPool配置为全局JNDI资源,然后使用resourcellinks使该资源可用于您需要的尽可能多或尽可能少的web应用程序。您可能需要编写一个简单的自定义资源工厂来完成此工作。

Tomcat的JNDI文档提供了一个简单工厂的工作示例。

最新更新