quartz定时执行任务,并配置web.xml的操作方法
今天项目上需要做个定时任务,临时学的,quartz的功能还是很强大用起来也方便,这里的demo只是实现每天定时执行一次,其他功能可以在此基础上继续深入学习,哈哈睡觉,明天继续。
一、maven依赖:
org.quartz-scheduler quartz 2.2.3 org.quartz-scheduler quartz-jobs 2.2.3
二、Doem:
TimingTaskSchedule需要实现ServletContextListener接口,监听后启动项目时的启动类
packagecom.thinkgem.jeesite.modules.sys.listener;
importjavax.servlet.ServletContextEvent;
importjavax.servlet.ServletContextListener;
publicclassTimingTaskScheduleimplementsServletContextListener{
//服务器启动时执行该事件
@Override
publicvoidcontextInitialized(ServletContextEventarg0){
try{
QuartzLoad.run();
}catch(Exceptione){
e.printStackTrace();
}
}
//服务器停止时执行该事件
@Override
publicvoidcontextDestroyed(ServletContextEventarg0){
try{
QuartzLoad.stop();
}catch(Exceptione){
e.printStackTrace();
}
}
}
这里的000?**表示每天00:00:00执行一次
从左到右分别表示秒分时日月周年
?表示不关心*表示每年可以忽略不写
packagecom.thinkgem.jeesite.modules.sys.listener;
importorg.quartz.CronScheduleBuilder;
importorg.quartz.CronTrigger;
importorg.quartz.Job;
importorg.quartz.JobBuilder;
importorg.quartz.JobDetail;
importorg.quartz.Scheduler;
importorg.quartz.SchedulerFactory;
importorg.quartz.TriggerBuilder;
importorg.quartz.impl.StdSchedulerFactory;
importcom.thinkgem.jeesite.modules.sys.listener.job;
publicclassQuartzLoad{
privatestaticSchedulersched;
publicstaticvoidrun()throwsException{
System.out.println("定时任务启动");
JobDetailjobDetail=JobBuilder.newJob((Class)job.class)
.withIdentity("myjob","group1").build();
CronTriggertrigger=(CronTrigger)TriggerBuilder.newTrigger()
.withIdentity("trigger","group1")
.withSchedule(CronScheduleBuilder.cronSchedule("000?**"))
.build();
SchedulerFactorysfact=newStdSchedulerFactory();
Schedulerschedule=sfact.getScheduler();
schedule.start();
schedule.scheduleJob(jobDetail,trigger);
}
//停止
publicstaticvoidstop()throwsException{
sched.shutdown();
}
}
Job中就是自己的业务处理
packagecom.thinkgem.jeesite.modules.sys.listener;
importjava.text.SimpleDateFormat;
importjava.util.Date;importorg.apache.shiro.authz.annotation.RequiresPermissions;
importorg.quartz.Job;
importorg.quartz.JobExecutionContext;
importorg.quartz.JobExecutionException;
publicclassjobimplementsJob{
publicvoidexecute(JobExecutionContextarg0)throwsJobExecutionException{
Datedate=newDate();
SimpleDateFormatsf=newSimpleDateFormat("yyyy-MM-ddHH:mm:ss");
System.out.println("Time:"+sf.format(date));
System.out.println("Hello");
}
}
}
}
三、web.xml监听:
com.thinkgem.jeesite.modules.sys.listener.TimingTaskSchedule
com.thinkgem.jeesite.modules.sys.listener.TimingTaskSchedule
以上这篇quartz定时执行任务,并配置web.xml的操作方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。