这里要使用到com.springsource.org.quartz-1.6.2.jar包,以及spring的开发包
首先创建定时石英任务
/*
* 创建日志表的石英任务
* */
public class CreateLogTablesTask extends QuartzJobBean {
private LogService logService;
//注入LogService
public LogService getLogService() {
return logService;
}
public void setLogService(LogService logService) {
this.logService = logService;
}
/*生成日志表,其中参数 0表示当月 1表示下个月,2表示下二个月*/
protected void executeInternal(JobExecutionContext arg0) throws JobExecutionException {
//下一个月
String tableName=LogUtil.generaterLogTableName(1);
//生成日志表
logService.createLogTable(tableName);
//下两个月
tableName=LogUtil.generaterLogTableName(2);
//生成日志表
logService.createLogTable(tableName);
//下三个月
tableName=LogUtil.generaterLogTableName(3);
//生成日志表
logService.createLogTable(tableName);
}
}
上面任务中需要用到LogUtil类中的generaterLogTableName方法,来产生表的名字。
然后在spring的配置文件applicationContext.xml中加上如下配置:
<!-- 配置石英调度任务,其实就是定时实现方法 -->
<!-- 创建bean -->
<!--<bean id="createLogTablesTask" class="com.ssh_surveypart.scheduler.CreateLogTablesTask"></bean> -->
<!-- 任务明细bean -->
<bean id="jobDetailBean" class="org.springframework.scheduling.quartz.JobDetailBean">
<!-- 通过任务类指定石英任务 -->
<property name="jobClass" value="com.ssh_surveypart.scheduler.CreateLogTablesTask"></property>
<property name="jobDataMap">
<map>
<entry key="logService" value-ref="logServiceImpl"></entry>
</map>
</property>
</bean>
<!-- cronTriggerBean触发器,设置石英任务调度策略 -->
<bean id="cronTriggerBean" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail" ref="jobDetailBean"></property>
<property name="cronExpression">
<!-- 每个月的12号12时13分0秒触发 -->
<value>0 13 12 12 * ?</value>
</property>
</bean>
<!--调度工厂bean ,触发触发器 -->
<bean id="schedulerFactoryBean" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref bean="cronTriggerBean"/>
</list>
</property>
</bean>