什么是定时任务? 定时任务分为两种: 一种是每隔指定时间则触发一次,在Quartz中对应的触发器为:org.springframework.scheduling.quartz.SimpleTriggerBean; 每到指定时间则触发一次,在Quartz中对应的调度器为:org.springframework.scheduling.quartz.CronTriggerBean; (ps:并非每种任务都可以使用这两种触发器,如java.util.TimerTask任务就只能使用第一种。Quartz和spring task都可以支持这两种触发条件)在Quartz中的作业类有两种方式 1.作业类需要继承自特定的作业类基类,如Quartz中需要继承自org.springframework.scheduling.quartz.QuartzJobBean;java.util.Timer中需要继承自java.util.TimerTask。 2.作业类即普通的java类,不需要继承自任何基类。第二种种作业类的实现过程 1.Jar准备:Spring核心jar 包,quartz.jar ,spring-context-support.jar (博主使用的是Spring4.x 以及quartz2.3) 2.任务类 public class Work { public void OneWork(){ System.out.println("任务执行中"); } } 3.在Spring的配置文件中进行配置定时任务(每隔2秒执行一次)
<bean id="work" class="com.WTU.ssm.TimeTask.Task.Work">
</bean>
<bean id="doWork"
class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="work"></property>
<property name="targetMethod" value="OneWork" />
</bean>
<bean id="simpleTrigger"
class="org.springframework.scheduling.quartz.SimpleTriggerFactoryBean">
<property name="jobDetail" ref="doWork" />
<property name="startDelay" value="0" />
<property name="repeatInterval" value="2000" />
</bean>
<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref bean="simpleTrigger" />
</list>
</property>
</bean>
4.如果执行每天定时的任务将触发器进行修改如下:
<bean
id=
"cronTrigger" class=
"org.springframework.scheduling.quartz.CronTriggerBean">
<
property name=
"jobDetail" ref=
"doWork" />
<!—每天
8:
00运行一次
<
property name=
"cronExpression" value=
"0 0 8 * * ?" />
</bean>