2010-09-04 37 views
5

我正在使用Quartz Scheduler v.1.8.0。如何獲得cron表達式給定的工作名稱和組名稱?

如何獲取已分配/附加到作業並使用CronTrigger計劃的cron表達式?在這種情況下,我有工作名稱和組名稱。雖然許多觸發器可以指向相同的工作,但在我的情況下,它只有一個。

在Scheduler類中有一種方法,Scheduler.getTriggersOfJob(jobName, groupName),但它只返回觸發器數組。

例cronexpression:0 /5 10-20 * * ?

注:CronTrigger延伸觸發

回答

15

您可以使用Scheduler.getTriggerOfJob。該類在Trigger []中返回給定jobName和groupName的所有觸發器。

然後,分析此數組的內容,測試觸發器是否爲CronTrigger,並將其轉換爲獲取CronTrigger實例。然後,getCronExpression()方法應該返回您正在查找的內容。

下面是一個代碼示例:

Trigger[] triggers = // ... (getTriggersOfJob) 
for (Trigger trigger : triggers) { 
    if (trigger instanceof CronTrigger) { 
     CronTrigger cronTrigger = (CronTrigger) trigger; 
     String cronExpr = cronTrigger.getCronExpression(); 
    } 
} 
+0

謝謝,我能看到我的cronexpression回來。順便說一句,你的代碼示例中的一個小修正:'Cron ** T ** rigger cronTrigger =(CronTrigger)觸發器''。 – Gnanam 2010-09-04 09:37:34

+0

@Gnanam:謝謝,我糾正了這一點:-) – 2010-09-04 09:51:43

相關問題