保持Quartz调度程序再次触发作业,直到上一个作业完成处理

时间:2015-03-11 13:47:47

标签: cron quartz-scheduler

我正在使用Quartz调度程序来安排从SFTP下载文件的过程。 每2个小时后就会触发一次这个工作。但有时由于文件很大,下载 需要更多时间,在完成之前,该过程将重新启动。他们是我们的任何方式 可以保持调度程序再次触发相同的作业,直到前一个过程完成处理?

我使用石英1.8.5。 下面是代码

<flow name="quartzCronModel">
    <quartz:inbound-endpoint connector-ref="Quartz"
        jobName="cron-job" cronExpression="${database_download_timer}"
        encoding="UTF-8">
        <quartz:event-generator-job />
    </quartz:inbound-endpoint>
    <component doc:name="Download Database"
        class="com.org.components.sftp.FileTransfer">
        <method-entry-point-resolver
            acceptVoidMethods="true">
            <include-entry-point method="execute" />
        </method-entry-point-resolver>
    </component>
</flow>

我正在从属性文件中读取cron表达式。

1 个答案:

答案 0 :(得分:1)

您的工作需要实施StatefulJob界面。它是一个标记接口,告诉Quartz如果它仍然在运行,它不应该触发该作业。换句话说,它可以防止并发执行该作业。