停止在Spring批处理中运行的线程

问题描述 投票:0回答:1

我有一个Spring批处理应用程序,它使用分区来运行一些线程。问题是,如果到达一定时间,我需要停止线程。

我不知道该怎么做。我有一个分区步骤

@Bean
public Step partitionerStep() {
    return stepBuilderFactory.get("PARTITIONER_STEP")
            .partitioner("SLAVE_STEP", partitioner())
            .step(stepConcederPerfilNormal())
            .taskExecutor(taskExecutor())
            .build();
}

首先,我以为我可以使用ThreadPoolTask​​Executor停止我的线程,但按照我的想法无法正常工作

@Bean
public TaskExecutor taskExecutor() {
    ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
    executor.setMaxPoolSize(200);
    executor.setCorePoolSize(50);
    executor.setAllowCoreThreadTimeOut(true);
    return executor;
}

只需修复它。如果线程正在运行1H30M,我需要停止线程]

java spring multithreading spring-batch java-threads
1个回答
0
投票

Spring Batch不创建或管理线程,它将其委托给TaskExecutor

如果线程正在运行1H30M,我需要停止我的线程

以下内容可能有帮助:Stop the thread after a particular time

© www.soinside.com 2019 - 2024. All rights reserved.