1

我正在使用 spring 批处理 tasklet 进行批处理,我的方案是在晚上 11 点一天执行一次以下过程。过程是

读取文件并处理

将数据写入数据库

归档文件。

但是当我执行作业时,作业继续在多个线程中执行第一步并且我收到此错误无法成功执行作业org.springframework.batch.core.repository.JobExecutionAlreadyRunningException:

是否可以在我的作业 xml 中配置任何 wat 以在计划时间内仅执行一次作业。

<batch:job id="PullJob">


        <batch:step id="ProcessingStep" next="cleanStep">
            <batch:tasklet transaction-manager="transactionManager">
                <batch:chunk reader="fileReader" processor="processor" writer="dbWriter" commit-interval="30" />
            </batch:tasklet>
        </batch:step>

        <batch:step id="cleanStep">
            <tasklet ref="cleaningTasklet"/>
        </batch:step>

    </batch:job>
4

1 回答 1

0

请参阅此SO帖子。如果您没有其他参数,您可以将当前日期作为参数传递,以获得唯一的作业执行。

于 2015-08-15T18:20:40.113 回答