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的操作方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。