Spring Quartz Scheduler - 在另一个完成后运行作业

时间:2016-01-25 06:47:57

标签: java spring quartz-scheduler crontrigger

我有两个配置为cronTriggerBeans的作业。它们被添加到石英SchedulerFactoryBean中。它们在不同的时间运行,但在数据库中修改相同的数据集。在作业运行时间相同的特定情况下会出现问题。在这种情况下,我希望job2等待job2完成。我意识到如果每次都是这种情况,有一种方法可以实现这种情况。但在我的情况下,一个工作每1小时运行一次,另一个每24小时运行一次。因此,当24小时工作运行时,我希望完成每小时的工作。我怎样才能实现它。

<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean" lazy-init="false">
        <property name="triggers">
            <list>
                <ref bean="hourlyJob"/>
                <ref bean="twentyFourHourlyJob"/>
            </list>
        </property>
    </bean>

<bean id="hourlyJob" class="org.springframework.scheduling.quartz.CronTriggerBean">
       // bean configurations

<bean id="twentyFourHourlyJob" class="org.springframework.scheduling.quartz.CronTriggerBean">
        // bean configurations
    </bean>   

1 个答案:

答案 0 :(得分:1)

您可以使用Job Step来配置流程,例如在完成其他方法后运行第二个作业,或者直接从第一个作业从主体运行它。

请看这里:http://docs.spring.io/spring-batch/trunk/reference/html/configureStep.html#external-flows