开发者社区> 问答> 正文

停止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 412 0
1 条回答
写回答
取消 提交回答
  • Spring Batch不会创建或管理线程,而是将其委托给TaskExecutor。

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

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

    回答来源:Stack Overflow

    2020-03-27 21:37:44
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
workshop专场-微服务专场-开发者动手实践营-微服务-Spring Cloud Alibaba 微服务全家桶体验 立即下载
云栖社区特邀专家徐雷Java Spring Boot开发实战系列课程(第20讲):经典面试题与阿里等名企内部招聘求职面试技巧 立即下载
多IO线程优化版 立即下载

相关实验场景

更多