quartz實現定時任務


  1. pom.xml 引入maven 依賴
<dependency>
  <groupId>org.quartz-scheduler</groupId>
  <artifactId>quartz</artifactId>
  <version>2.2.3</version>
</dependency>
  1. pom.xml註冊監聽器
    ps:項目實際實現 ServletContextListener 接口的類的全路徑
<listener>
    <listener-class>xxx.xxx.xxListener</listener-class>
</listener>
  1. java 代碼實現(共涉及三個 .java 文件)

    AbcAcountTaskActiveStart.java (創建Schedeler,定義執行規則)
       在線生成cron規則網站: http://cron.qqe2.com/

publlic class AbcAcountTaskActiveStart{
  public void start(){
    try{
        Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();
        scheduler.start();
        JobDetail job = JobBuilder.newJob(AbcAountActiveTaskJob.class).withIdentity("tbl_upmgm_day_trade_statistice","spp_day").build();
        String cron = "0 0 0 1-31 * ?"; //每天凌晨執行
        CranTriggrt tigger = newTrigger().withIdentity("dayTrigger","spp_day").withSchedule(cronSchedule(cron)).build();
        scheduler.scheduleJob(job,trigger);
        }catch(Throwable e){
        //日誌打印異常,定時器服務錯誤
        }
    }
}

AbcAountActiveTaskJob.java (實際任務中要執行的代碼)

public class AbcAountActiveTaskJob implements Job {
    public void execute(JobExecutionContext context)throws JobExecutionException{
        //具體要實現的代碼
    }
}

SchedulerListener.java (註冊監聽,全路徑對應web.xml 監聽器路徑)

public class SchedulerListener implements ServletContextListener{
    public void contextDestroyed(ServletContextEvent arg0){
    }
    public void contextInitialized (ServletContextEvent arg0){
        new AbcAcountTaskActiveStart().start();
    }
}

如有錯誤,還望各界大佬不吝賜教!!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章