有一次项目中用到了定时任务,记录下:
1、Dcjob类:
public void execute(){
System.out.println("开始后台用户资料预处理......");
try {
createAccount();
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
2、spring配置文件:
<bean id="TimerTask"
class="cn.zgjkw.mtc.quartz.DcJob"/>
<bean id="scheduledInfo"
class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject">
<ref bean="TimerTask"/>
</property>
<property name="targetMethod">
<value>execute</value>
</property>
</bean>
<bean id="cronInfoTrigger"
class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail">
<ref bean="scheduledInfo"/>
</property>
<property name="cronExpression">
<value>0 0 12 * * ?</value>
</property>
</bean>
<bean autowire="no"
class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref bean="cronInfoTrigger"/>
</list>
</property>
</bean>
3、cronExpression的参数说明下:
下面是网上的说明:
一个cron表达式有至少6个(也可能是7个)由空格分隔的时间元素。从左至右,这些元素的定义如下:
1.秒(0–59)
2.分钟(0–59)
3.小时(0–23)
4.月份中的日期(1–31)
5.月份(1–12或JAN–DEC)
6.星期中的日期(1–7或SUN–SAT)
7.年份(1970–2099)
0 0 10,14,16 * *
每天上午10点,下午2点和下午4点
0 0,15,30,45 * 1-10 *
每月前10天每隔15分钟
30 0 0 1 1 2012
在2012年1月1日午夜过30秒时
0 0 8-5 * MON-FRI
每个工作日的工作时间