<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" " http://www.springframework.org/dtd/spring-beans.dtd ">
<beans default-autowire="byName">
<bean id="timetaskScheduler" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref local="countSalaryTrigger"/>
</list>
</property>
</bean>
<bean id="countSalaryTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail">
<bean class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="countSalary"/>
<property name="targetMethod" value="init"/>
</bean>
</property>
<property name="cronExpression" value="0 13 13 * * ?"/>
</bean>
<bean id="countSalary" class="org.frame.base.quartz.CountSalary" singleton="true"/>
</beans>
这种方式定义任务很简单,这是定时任务,到13:13分执行.
0 13 13 * * ?
简单的定时任务调度这样就可以了,循环任务调度只需要改下cronExpression就可以了:
0 0/10 * * * ?
每十分钟执行一次。
countSalary就一Java类,里面有一个方法名为init:
package org.frame.base.quartz;
public class CountSalary {
private void init(){
System.out.println("hello quartz!");
}
}
有人可能有疑问这种表达式该怎么写:
第一个0 表示0妙.
第二个13表示13分钟,0/10表示延迟0分钟,每10分钟执行一次.
第三个13表示13小时,*表示任意小时
第四个*表示任意月
第五个*表示星期
第六个?表示任意日期.
最后一个一般不定义,定义年的任务不切实际
其实一般的任务调度这样就可以了[定时任务,循环任务],如果要实现指定任意时间的调度,请看下一节.