在不同WAR之间共享线程池

时间:2016-10-27 14:48:38

标签: java tomcat threadpool war tomcat8

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

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

这些池是Spring's schedulers和标准Java ThreadPoolExecutor之间的混合,但我想如果需要,它们可以标准化为单一类型。

PS:这实际上是否有用The Executor (thread pool)如果是,那该怎么办?

1 个答案:

答案 0 :(得分:1)

您可以将单个ThreadPool配置为全局JNDI资源,然后使用ResourceLinks使该资源可用于您需要的任意数量的Web应用程序。您可能需要编写一个简单的自定义资源工厂代码才能使其正常工作。

Tomcat的JNDI documentation为一个简单的工厂提供了一个有效的例子。