我有一个Spring批处理应用程序,它使用分区来运行一些线程。问题是,如果到达一定时间,我需要停止线程。
我不知道该怎么做。我有一个分区步骤
@Bean
public Step partitionerStep() {
return stepBuilderFactory.get("PARTITIONER_STEP")
.partitioner("SLAVE_STEP", partitioner())
.step(stepConcederPerfilNormal())
.taskExecutor(taskExecutor())
.build();
}
首先,我以为我可以使用ThreadPoolTaskExecutor停止我的线程,但按照我的想法无法正常工作
@Bean
public TaskExecutor taskExecutor() {
ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
executor.setMaxPoolSize(200);
executor.setCorePoolSize(50);
executor.setAllowCoreThreadTimeOut(true);
return executor;
}
只需修复它。如果线程正在运行1H30M,我需要停止线程]
Spring Batch不创建或管理线程,它将其委托给TaskExecutor
。
如果线程正在运行1H30M,我需要停止我的线程
以下内容可能有帮助:Stop the thread after a particular time