首页 > 解决方案 > Wildfly 10.1.0.Final ManagedExecutorService 导致活动线程数增加

问题描述

Wildfly 10.1.0.Final ManagedExecutorService 导致活动线程数增加

我在 Wildfly 15 上尝试过相同的配置

我每 10 分钟执行一次 Timer 课程。我在这个计时器中调用了一个无状态会话 bean 的方法。

@Resource
private TimerService timerService;

@Timeout
public void timeOut() {
    executorBean.executeParallels();
}

在 ExecutorBean 中,我使用 ManagedExecutorService 并调用 10000 次来执行 doSomething。

@Stateless (name="ExecutorBean")
ExecutorBean implements ExecutorLocal {

    @Resource
    private ManagedExecutorService executorService;

    public void executeParallels() {
        for (int i = 0; i < 10000; i++) {
            Future<Void> result = executorService.submit(new Callable<String>() {
                @Override
                public String call() throws Exception {
                    doSomething();
                    return "executed";
                }
            });
        }
    }
}

这是我的standalone.conf 文件:

<managed-executor-services>
<managed-executor-service name="default"
    jndi-name="java:jboss/ee/concurrency/executor/default"
    context-service="default" hung-task-threshold="60000"
    core-threads="50" max-threads="50" keepalive-time="5000"/>
</managed-executor-services>

我可以部署和运行代码,但是当我检查 Wildfly 管理控制台(独立服务器 -> JVM)时,我可以看到实时线程的数量随着时间的推移不断增加。

随着时间的推移,线程数应该相同。

标签: jakarta-eeconcurrencywildflyexecutorservice

解决方案


推荐阅读