Spring Quartz使用及配置
程序员文章站
2022-05-24 19:05:26
...
Quartz是一个开源的定时任务框架,在一些日常的任务中,我们经常有一些这样的需要,比如我们需要隔多少分钟去扫描或者检查一下某些文件,或者在指定的时间点内去处理一些文件。这些定时的任务更多的是一种批处理任务。在一些常用的实现里我们会使用shell脚本来完成这份工作。使用shell脚本来完成的这些任务相对来说是特定于某个任务的,不具备通用性,而且根据问题性质的复杂程度,有时候我们需要提高定时任务的可靠性和性能,这个时候单纯的用一些脚本来处理就显得非常困难和复杂了 。于是quartz这个框架就能帮我们不少忙。
jobDetail定义:
用名为PorcessExcuterTrigger的Trigger来驱动调度jobDetail,由于定义的是CronTrigger,因此通过设置cronExpression来设置jobDetail的执行时间,如下是jobDetail的配置:
<bean id="PorcessExcuter"
class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject">
<bean class="com.service.Query.QueryScheduler" />
</property>
<property name="targetMethod" value="executeProcesser" />
<property name="concurrent" value="false" />
</bean>
Trigger定义:
<bean id="PorcessExcuterTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<property name="jobDetail" ref="PorcessExcuter" />
<property name="cronExpression" value="* * */1 * * ?"/>
</bean>
scheduler定义:
要让这些定义好的job能够跑起来,我们还需要有一个scheduler,在spring里,这些也是准备好了的。针对前面的jobDetail和trigger,它的典型配置如下:
<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
···
<ref bean ="PorcessExcuterTrigger" />
···
</list>
</property>
</bean>
一个任务调度的示例。它的主要步骤为1.定义job 2. 定义trigger 3. 定义scheduler来拼接。
参考:http://websystique.com/spring/spring-4-quartz-scheduler-integration-example/
上一篇: Quartz简介