quartz3

quartz API 接口部分

Scheduler : 與調度程序進行交互的主要API,包括啓動,暫停,顯示

Job :調度程序執行的組件實現的接口(每次調用都會啓用一個線程)

JobDetail : 用於定義作業的實例

Trigger : 定義執行給定作業的計劃的組件,包括執行週期、時間、方式

JobBuilder : 用於定義/構建JobDetail實例,它定義了作業的實例

TriggerBuilder : 用於定義/構建觸發器實例

第一個例子

public class HelloJob implements Job{

    private static Logger log = org.slf4j.LoggerFactory.getLogger(HelloJob.class);

    public void execute(JobExecutionContext arg0) throws JobExecutionException {

        log.info("hello World" + new Date());
    }

}
public class SimpleDemo {

    public void run() throws SchedulerException{
        Logger log = LoggerFactory.getLogger(SimpleDemo.class);
        //  初始化調度
        SchedulerFactory sf = new StdSchedulerFactory();
        Scheduler sched = sf.getScheduler();

        // 反射加載實現Job接口的HelloJob類
        JobDetail job = JobBuilder.newJob(HelloJob.class).withIdentity("job1", "group1").build();

        // 運行時間   每分鐘運行一次
        Date runTime = DateBuilder.evenMinuteDateBefore(new Date());
        Trigger trigger = TriggerBuilder.newTrigger().withIdentity("trigger1", "group1").startAt(runTime).build();
        sched.scheduleJob(job, trigger);

        // 調度開始
        sched.start();
        // 主線程關閉65s, 此期間觸發不了
        try {
            Thread.sleep(65L*1000L);
        } catch (InterruptedException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        // 調度關閉
        sched.shutdown();
    }


    public static void main(String[] args) throws SchedulerException {
        SimpleDemo demo = new SimpleDemo();
        demo.run();
    }


}
    格式: [秒] [分] [小時] [日] [月] [周] [年]
        0 0 12 * * ?           每天12點觸發
        0 15 10 ? * *          每天1015分觸發
        0 15 10 * * ?          每天1015分觸發 
        0 15 10 * * ? *        每天1015分觸發 
        0 15 10 * * ? 2005     2005年每天1015分觸發
        0 * 14 * * ?           每天下午的 2點到259分每分觸發
        0 0/5 14 * * ?         每天下午的 2點到259分(整點開始,每隔5分觸發) 
        0 0/5 14,18 * * ?        每天下午的 18點到1859分(整點開始,每隔5分觸發)

        0 0-5 14 * * ?            每天下午的 2點到205分每分觸發
        0 10,44 14 ? 3 WED        3月分每週三下午的 210分和244分觸發
        0 15 10 ? * MON-FRI       從週一到週五每天上午的1015分觸發
        0 15 10 15 * ?            每月15號上午1015分觸發
        0 15 10 L * ?             每月最後一天的1015分觸發
        0 15 10 ? * 6L            每月最後一週的星期五的1015分觸發
        0 15 10 ? * 6L 2002-20052002年到2005年每月最後一週的星期五的1015分觸發

        0 15 10 ? * 6#3           每月的第三週的星期五開始觸發
        0 0 12 1/5 * ?            每月的第一個中午開始每隔5天觸發一次
        0 11 11 11 11 ?           每年的11111111分觸發(光棍節)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章