2012-03-14 135 views
1

我有一個計劃任務和一些作業。我希望能夠顯示調度程序中的所有活動作業,我的意思是我希望在每個作業被觸發時顯示。 這是我的代碼:java quartz從計劃作業中獲取所有詳細信息

 sched.start();     

     JobDetail job = newJob(Jobs.class) 
     .withIdentity(job_name_, "default") 
     .usingJobData("job_type", job_type_)    
     .build(); 

     Trigger trigger = newTrigger() 
     .withIdentity(job_name_, "default") 
     .startNow()     
     .withSchedule(cronSchedule(date_time_)) 
     .build(); 

     sched.scheduleJob(job, trigger);  

如何才能做到這一點?我如何從工作觸發器中獲得cron表達式?還有一種方法可以將cron表達式看作更詳細的日期或事件,然後是表達式本身?

任何幫助將appritiated,

感謝的在進展。

回答

6

所有的API就在那裏:

Trigger t = scheduler.getTrigger(new TriggerKey(job_name_, "default")) 

返回Trigger類有getNextFireTime()。繼承它讓cron表達式:

((CronTrigger)t).getCronExpression(); 

Scheduler擁有所有你需要的其他方法:

+0

謝謝!我現在可以看到cron表達式了。是否有辦法獲取它的細節,如getHour \ getDay \ etc。 ? – user590586 2012-03-14 10:07:08

+0

@ user590586:你的意思是從「日期」或從CRON表達式中獲得日期/時間嗎?前者可以使用'Calendar'來實現,後者則需要解析CRON表達式。 Quartz有一些實用程序可以做到這一點。 – 2012-03-14 10:10:44

+0

對不起,但我沒有退出理解,我想從cron表達式得到關於它的觸發時間的所有細節 - 每週的哪幾天,什麼時候等等。我應該將CRON表達式解析爲'calendar'嗎?然後獲取我想要的信息?這是你的意思嗎?如果是這樣,解析方法是否有示例或API?再次感謝! – user590586 2012-03-14 10:28:56