读书人

spring之定时部署

发布时间: 2012-08-27 21:21:56 作者: rapoo

spring之定时调度
在java2中完成定时调度是基于Timer(启动定时器)和TimerTask(定义执行任务)来完成的。
但是功能比较局限。spring支持Quartz。
首先看一下非spring情况下使用Quartz的实例
首先定义一个实现StatefulJob接口的类,该类表示定时器的执行的任务。
public class WeatherCaptureJob implements StatefulJob {
public void execute(JobExecutionContext context)
throws JobExecutionException {
//xxx调度逻辑代码


然后实现一个JobDetail用于装作jobClass(即上面的类).
JobDetail jobDetail = new JobDetail("WeatherCaptureJob",
"WeatherCaptureJobGroup", WeatherCaptureJob.class);
然后定义一个表达式语言的类
CronExpression cexp = new CronExpression(expressValue);//expressValue为表达式语言字符串
再定义一个CronTrigger类,该类用于装作表达式语言,即设定了定时器的执行时机。
CronTrigger cronTrigger = new CronTrigger("WeatherCaptureCronTrigger", "WeatherCaptureJobGroup");
cronTrigger.setCronExpression(cexp);
最后定义一个调度类,该类用于让任务类在设定的时间执行
SchedulerFactory schedulerFactory = new StdSchedulerFactory();
Scheduler scheduler = schedulerFactory.getScheduler();
scheduler.scheduleJob(jobDetail, cronTrigger);
scheduler.start();

然后再看看spring下对Quartz的支持
首先定义一个继承QuartzJobBean类的实现类,该实现类是定时任务类
public class MyTimeTask extends QuartzJobBean {
public void executeInternal(JobExecutionContext arg0)
throws JobExecutionException {
//定时逻辑代码


在spring配置文件中定义jobdetail类,该类是装载定时任务类的
<bean id="mySchdulTask"
/>
</property>
<property name="cronExpression">
<value>0 0/10 * * * ?</value>
</property>
</bean>
最后定义一个调度类,用于执行triger
<bean
/>
</list>
</property>
</bean>

读书人网 >编程

热点推荐