您好,登錄后才能下訂單哦!
今天項目上需要做個定時任務,臨時學的,quartz的功能還是很強大用起來也方便,這里的demo只是實現每天定時執行一次,其他功能可以在此基礎上繼續深入學習,哈哈 睡覺,明天繼續。
一、maven依賴:
<dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz</artifactId> <version>2.2.3</version> </dependency> <dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz-jobs</artifactId> <version>2.2.3</version> </dependency>
二、Doem:
TimingTaskSchedule需要實現ServletContextListener接口,監聽后啟動項目時的啟動類
package com.thinkgem.jeesite.modules.sys.listener; import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener; public class TimingTaskSchedule implements ServletContextListener{ // 服務器啟動時執行該事件 @Override public void contextInitialized(ServletContextEvent arg0) { try { QuartzLoad.run(); } catch (Exception e) { e.printStackTrace(); } } // 服務器停止時執行該事件 @Override public void contextDestroyed(ServletContextEvent arg0) { try { QuartzLoad.stop(); } catch (Exception e) { e.printStackTrace(); } } }
這里的 0 0 0 ? * * 表示每天00:00:00執行一次
從左到右分別表示 秒 分 時 日 月 周 年
?表示不關心 *表示每 年可以忽略不寫
package com.thinkgem.jeesite.modules.sys.listener; import org.quartz.CronScheduleBuilder; import org.quartz.CronTrigger; import org.quartz.Job; import org.quartz.JobBuilder; import org.quartz.JobDetail; import org.quartz.Scheduler; import org.quartz.SchedulerFactory; import org.quartz.TriggerBuilder; import org.quartz.impl.StdSchedulerFactory; import com.thinkgem.jeesite.modules.sys.listener.job; public class QuartzLoad { private static Scheduler sched; public static void run() throws Exception { System.out.println("定時任務啟動"); JobDetail jobDetail = JobBuilder.newJob((Class<? extends Job>) job.class) .withIdentity("myjob", "group1").build(); CronTrigger trigger =(CronTrigger) TriggerBuilder.newTrigger() .withIdentity("trigger", "group1") .withSchedule(CronScheduleBuilder.cronSchedule("0 0 0 ? * *")) .build(); SchedulerFactory sfact = new StdSchedulerFactory(); Scheduler schedule = sfact.getScheduler(); schedule.start(); schedule.scheduleJob(jobDetail, trigger); } //停止 public static void stop() throws Exception{ sched.shutdown(); } }
Job中就是自己的業務處理
package com.thinkgem.jeesite.modules.sys.listener; import java.text.SimpleDateFormat; import java.util.Date;import org.apache.shiro.authz.annotation.RequiresPermissions; import org.quartz.Job; import org.quartz.JobExecutionContext; import org.quartz.JobExecutionException; public class job implements Job{ public void execute(JobExecutionContext arg0) throws JobExecutionException { Date date=new Date(); SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); System.out.println("Time:"+sf.format(date)); System.out.println("Hello"); } } } }
三、web.xml監聽:
com.thinkgem.jeesite.modules.sys.listener.TimingTaskSchedule
<listener> <listener-class>com.thinkgem.jeesite.modules.sys.listener.TimingTaskSchedule</listener-class> </listener>
以上這篇quartz定時執行任務,并配置web.xml的操作方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持億速云。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。