首頁 > Java > java教程 > 主體

配置web.xml的實例教程

零下一度
發布: 2017-07-19 13:39:22
原創
1633 人瀏覽過

        今天項目上需要做個定時任務,臨時學的,quartz的功能還是很強大用起來也方便,這裡的demo只是實現每天定時執行一次,其他功能可以在此基礎上繼續深入學習,哈哈睡覺,明天繼續。

 一直有想法把自己學的東西記錄整理分享做出來,一直沒動過,今天開始第一篇,這是今天專案上需要做個定時任務,臨時學的,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{// 服务器启动时执行该事件    @Overridepublic void contextInitialized(ServletContextEvent arg0) {try {
            QuartzLoad.run();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }// 服务器停止时执行该事件    @Overridepublic 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中就是自己的業務處理

  job   execute(JobExecutionContext arg0) ==  SimpleDateFormat("yyyy-MM-dd HH:mm:ss""Time:"+"Hello"
登入後複製

三、web.xml監聽:

com.thinkgem.jeesite.modules.sys.listener.TimingTaskSchedule

<listener>
<listener-class>com.thinkgem.jeesite.modules.sys.listener.TimingTaskSchedule
</listener-class>
</listener>
登入後複製

以上是配置web.xml的實例教程的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!