开发者社区 问答 正文

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

我有一个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,我需要停止线程

问题来源:Stack Overflow

展开
收起
montos 2020-03-27 21:37:13 456 分享 版权
1 条回答
写回答
取消 提交回答
  • Spring Batch不会创建或管理线程,而是将其委托给TaskExecutor。

    如果线程运行了1H30M,我需要停止线程

    以下内容可能会有所帮助:在特定时间后停止线程

    回答来源:Stack Overflow

    2020-03-27 21:37:44
    赞同 展开评论