HelloJob的實(shí)例是怎么創(chuàng)建出來(lái)的?
先定義了一個(gè)HellJob的任務(wù)類,然后創(chuàng)建JobDetail的實(shí)例與此類進(jìn)行綁定,在然后scheduler調(diào)用什么方法創(chuàng)建的實(shí)例呢?
先定義了一個(gè)HellJob的任務(wù)類,然后創(chuàng)建JobDetail的實(shí)例與此類進(jìn)行綁定,在然后scheduler調(diào)用什么方法創(chuàng)建的實(shí)例呢?
舉報(bào)
2018-03-15
//啟動(dòng)任務(wù)調(diào)度程序,內(nèi)部機(jī)制是線程的啟動(dòng)
? scheduler.start();
具體代碼如下,供參考:
//從調(diào)度程序工廠獲取一個(gè)調(diào)度程序的實(shí)例
? ? ? ? ? ?Scheduler ?scheduler ?= StdSchedulerFactory.getDefaultScheduler();
? ? ? ? ? ?//顯示調(diào)度程序的名稱(這里會(huì)展示我們?cè)趒uartz.properties文件中的名稱)
? ? ? ? ? ?System.out.println("scheduleName = " + scheduler.getSchedulerName());
? ? ? ? ? ?/** 重要:
? ? ? ? ? ? * ?定義一個(gè)job,并綁定到我們自定義的HelloJob的class對(duì)象
? ? ? ? ? ? * ?這里并不會(huì)馬上創(chuàng)建一個(gè)HelloJob實(shí)例,實(shí)例創(chuàng)建是在scheduler安排任務(wù)觸發(fā)執(zhí)行時(shí)創(chuàng)建的
? ? ? ? ? ? * ?這種機(jī)制也為后面使用Spring集成提供了便利
? ? ? ? ? ? */
? ? ? ? ? ? ?JobDetail job = newJob(HelloJob.class) ? ? ? ? ? ? ? ? ?.withIdentity("job1", "group1") ? ? ? ? ? ? ? ? ?.build();
? ? ? ? ? ? ?// 聲明一個(gè)觸發(fā)器,現(xiàn)在就執(zhí)行(schedule.start()方法開始調(diào)用的時(shí)候執(zhí)行);并且每間隔2秒就執(zhí)行一次
? ? ? ? ? ? ?Trigger trigger = newTrigger() ? ? ? ? ? ? ? ? ?.withIdentity("trigger1", "group1") ? ? ? ? ? ? ? ? ?.startNow() ? ? ? ? ? ? ? ? ? ? ? ?.withSchedule(simpleSchedule() ? ? ? ? ? ? ? ? ? ? ? ? ?.withIntervalInSeconds(2) ? ? ? ? ? ? ? ? ? ? ? ? ?.repeatForever()) ? ? ? ? ? ?
? ? ? ? ? ? ? ? ?.build();
? ? ? ? ? ? ?// 告訴quartz使用定義的觸發(fā)器trigger安排執(zhí)行任務(wù)job
? ? ? ? ? ? ?scheduler.scheduleJob(job, trigger);
? ? ? ? ? ?//啟動(dòng)任務(wù)調(diào)度程序,內(nèi)部機(jī)制是線程的啟動(dòng)
? ? ? ? ? ?scheduler.start();
? ? ? ? ? ?//關(guān)閉任務(wù)調(diào)度程序,如果不關(guān)閉,調(diào)度程序schedule會(huì)一直運(yùn)行著
? ? ? ? ? ?//scheduler.shutdown();