課程
/后端開發
/Java
/Java定時任務調度工具詳解之Quartz篇
先定義了一個HellJob的任務類,然后創建JobDetail的實例與此類進行綁定,在然后scheduler調用什么方法創建的實例呢?
2018-03-15
源自:Java定時任務調度工具詳解之Quartz篇 2-2
正在回答
//啟動任務調度程序,內部機制是線程的啟動? scheduler.start();
具體代碼如下,供參考:
//從調度程序工廠獲取一個調度程序的實例 ? ? ? ? ? ?Scheduler ?scheduler ?= StdSchedulerFactory.getDefaultScheduler(); ? ? ? ? ? ?//顯示調度程序的名稱(這里會展示我們在quartz.properties文件中的名稱) ? ? ? ? ? ?System.out.println("scheduleName = " + scheduler.getSchedulerName()); ? ? ? ? ? ?/** 重要: ? ? ? ? ? ? * ?定義一個job,并綁定到我們自定義的HelloJob的class對象 ? ? ? ? ? ? * ?這里并不會馬上創建一個HelloJob實例,實例創建是在scheduler安排任務觸發執行時創建的 ? ? ? ? ? ? * ?這種機制也為后面使用Spring集成提供了便利 ? ? ? ? ? ? */ ? ? ? ? ? ? ?JobDetail job = newJob(HelloJob.class) ? ? ? ? ? ? ? ? ?.withIdentity("job1", "group1") ? ? ? ? ? ? ? ? ?.build(); ? ? ? ? ? ? ?// 聲明一個觸發器,現在就執行(schedule.start()方法開始調用的時候執行);并且每間隔2秒就執行一次 ? ? ? ? ? ? ?Trigger trigger = newTrigger() ? ? ? ? ? ? ? ? ?.withIdentity("trigger1", "group1") ? ? ? ? ? ? ? ? ?.startNow() ? ? ? ? ? ? ? ? ? ? ? ?.withSchedule(simpleSchedule() ? ? ? ? ? ? ? ? ? ? ? ? ?.withIntervalInSeconds(2) ? ? ? ? ? ? ? ? ? ? ? ? ?.repeatForever()) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?.build(); ? ? ? ? ? ? ?// 告訴quartz使用定義的觸發器trigger安排執行任務job ? ? ? ? ? ? ?scheduler.scheduleJob(job, trigger); ? ? ? ? ? ?//啟動任務調度程序,內部機制是線程的啟動 ? ? ? ? ? ?scheduler.start(); ? ? ? ? ? ?//關閉任務調度程序,如果不關閉,調度程序schedule會一直運行著 ? ? ? ? ? ?//scheduler.shutdown();
我叫楊云龍 提問者
舉報
Java定時任務調度工具詳解之Quartz篇
2 回答Org.quartz.simpl.SimpleThreadPool類是怎么用的?Quartz的線程池是怎么用的?
1 回答Quartz最多可以創建多少個任務呀
1 回答quartz為什么不能提供帶有參數的構造函數去給job實例初始化參數?
1 回答為什么我的其他資源文件夾不會自己出來··
2 回答為什么執行結果只有成員屬性的,jobDataMap的值打印不出來
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2018-03-15
//啟動任務調度程序,內部機制是線程的啟動
? scheduler.start();
具體代碼如下,供參考:
//從調度程序工廠獲取一個調度程序的實例
? ? ? ? ? ?Scheduler ?scheduler ?= StdSchedulerFactory.getDefaultScheduler();
? ? ? ? ? ?//顯示調度程序的名稱(這里會展示我們在quartz.properties文件中的名稱)
? ? ? ? ? ?System.out.println("scheduleName = " + scheduler.getSchedulerName());
? ? ? ? ? ?/** 重要:
? ? ? ? ? ? * ?定義一個job,并綁定到我們自定義的HelloJob的class對象
? ? ? ? ? ? * ?這里并不會馬上創建一個HelloJob實例,實例創建是在scheduler安排任務觸發執行時創建的
? ? ? ? ? ? * ?這種機制也為后面使用Spring集成提供了便利
? ? ? ? ? ? */
? ? ? ? ? ? ?JobDetail job = newJob(HelloJob.class) ? ? ? ? ? ? ? ? ?.withIdentity("job1", "group1") ? ? ? ? ? ? ? ? ?.build();
? ? ? ? ? ? ?// 聲明一個觸發器,現在就執行(schedule.start()方法開始調用的時候執行);并且每間隔2秒就執行一次
? ? ? ? ? ? ?Trigger trigger = newTrigger() ? ? ? ? ? ? ? ? ?.withIdentity("trigger1", "group1") ? ? ? ? ? ? ? ? ?.startNow() ? ? ? ? ? ? ? ? ? ? ? ?.withSchedule(simpleSchedule() ? ? ? ? ? ? ? ? ? ? ? ? ?.withIntervalInSeconds(2) ? ? ? ? ? ? ? ? ? ? ? ? ?.repeatForever()) ? ? ? ? ? ?
? ? ? ? ? ? ? ? ?.build();
? ? ? ? ? ? ?// 告訴quartz使用定義的觸發器trigger安排執行任務job
? ? ? ? ? ? ?scheduler.scheduleJob(job, trigger);
? ? ? ? ? ?//啟動任務調度程序,內部機制是線程的啟動
? ? ? ? ? ?scheduler.start();
? ? ? ? ? ?//關閉任務調度程序,如果不關閉,調度程序schedule會一直運行著
? ? ? ? ? ?//scheduler.shutdown();