-
Job(or Task):需要定时处理的事情
-
Trigger: 事件触发时间点(一次性的、固定周期性的、像Linux Cron Jobs 灵活配置的)
-
Scheduler: 调度器
定义一个Job:
- 使用 MethodInvokingJobDetailFactoryBean
<bean id="smsJobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="sysSMSTaskService"/>
<property name="targetMethod" value="sendSMS"/>
<!-- 同一任务在前一次执行未完成而Trigger时间又到时是否并发开始新的执行, 默认为true. -->
<property name="concurrent" value="false"/></bean>
- 使用 JobDetailFactoryBean
定义一个触发器
- 简单触发器,使用 SimpleTriggerFactoryBean
<bean id="simpleTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerFactoryBean">
<property name="jobDetail" ref="simpleJobDetail" />
<property name="startDelay" value="1000" />
<property name="repeatInterval" value="2000" />
</bean>- 计划触发器,使用 CronTriggerFactoryBean
<bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<property name="jobDetail" ref="firstComplexJobDetail" />
<!--<property name="cronExpression" value="0/5 * * ? * SAT-SUN" />-->
<property name="cronExpression" value="0/5 * * ? * *" />
</bean> 配置 Quartz 调度器的 SchedulerFactoryBean
<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="jobDetails">
<list>
<ref bean="simpleJobDetail" />
<ref bean="firstComplexJobDetail" />
<ref bean="secondComplexJobDetail" />
</list>
</property>
<property name="triggers">
<list>
<ref bean="simpleTrigger" />
<ref bean="cronTrigger" />
<ref bean="secondCronTrigger" />
</list>
</property>
</bean>
本文介绍如何使用Spring框架集成Quartz实现任务调度,包括Job定义、Trigger触发器配置及Scheduler调度器整合。通过示例展示了MethodInvokingJobDetailFactoryBean与JobDetailFactoryBean定义Job的方法,以及SimpleTriggerFactoryBean和CronTriggerFactoryBean创建触发器的过程。
1174

被折叠的 条评论
为什么被折叠?



