java - 使用拆分 EIP 进行并行处理时管理线程数
问题描述
我有一条简单的路线,每 5 分钟运行一次,如下所示:
from(testEndpoint).routeId("testRoute")
.doTry()
.log(this.message("Acquired lock starting processing."))
.process(configProcessor)
.choice()
.when(body().isNotNull())
.split(body())
.parallelProcessing()
.bean(parseConfig.class)
.choice()
.toD("${property.route}")
.endChoice()
.endDoTry()
.end();
该路由从数据库中获取配置并将其发送到另外两个正在侦听来自该路由的消息的路由。
为了使这条路线并行工作,我结合parallelProcessing
了split
. 这工作正常,但每次路由运行时,此代码都会不断创建不同的线程,并在达到 33 个线程时停止。
线程池如下图所示:
如何管理线程数?我尝试添加超时,但这不起作用,线程陷入等待状态并且它们不会被杀死。
我无法更改默认线程池配置文件,因为代码中的其他地方需要该配置。有人可以指导我正确的方向吗?
解决方案
推荐阅读
- java - Java Spark:从HDFS删除目录时任务不可序列化错误
- gradle - 在 Groovy 中从 Gradle 访问属性
- python - Python - 将函数返回的元组存储到列表中
- node.js - 将 MongoDB 容器与 nodejs 应用程序连接起来
- python-3.x - 获取字典中的字典项
- javascript - 避免放大器;通过 javascript 在 URL 中
- javascript - React .trim() 不是函数
- c++ - 使用正确工作的 find() 创建有序多重集
- reactjs - 状态更改时组件不更新
- r - ggplot2/ggfortify 绘制 PCA 时出错