【问题标题】:spring batch run a task only once for ever春季批处理永远只运行一次任务
【发布时间】:2012-07-28 14:30:52
【问题描述】:

我有一份春季批处理作业。作业中的第一个任务是创建虚拟数据。我只想运行此作业一次,此后该作业运行多少次,或者说能够根据属性文件中的某些属性值将此任务配置为仅运行一次都没有关系。我如何实现这个功能。

在生产系统中,这可能与在处理文件之前创建文件夹结构以复制不同的文件类型相同。

【问题讨论】:

    标签: spring spring-batch


    【解决方案1】:

    Tasklet Spring Batch 的接口就是你要找的。您必须实现execute 方法。

    public class FolderTasklet implements Tasklet{
    
        public RepeatStatus execute(StepContribution stepContribution, ChunkContext chunkContext) throws Exception {
        //your copy folder structure logic goes here
        }
    }
    

    【讨论】:

    • 我现在正在使用一个 tasklet,根据官方文档,看起来应该用于设置资源和清理。我一直在寻找的是,无论作业运行多少次,都只做一次。我想这类事情需要在工作之外完成,然后运行工作。感谢您的回复
    • Spring 批处理作业主要适用于读写器场景。如果您需要在每个作业执行的主要步骤之前进行设置,您可以将其创建为父步骤。但是如果你只需要这个设置过程一次,最好的办法是使用 tasklet 创建另一个作业。
    猜你喜欢
    • 2021-03-24
    • 2016-08-01
    • 1970-01-01
    • 2014-12-15
    • 2018-05-27
    • 2015-05-13
    • 2017-06-25
    • 2017-10-06
    • 2019-01-28
    相关资源
    最近更新 更多