在 spring 个批次中停止线程 运行
Stop a thread running in spring batch
我有一个 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
.
I need to stop my thread if it's running for 1H30M
以下内容可能会有所帮助:
我有一个 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
.
I need to stop my thread if it's running for 1H30M
以下内容可能会有所帮助: