如何根据作业名称和组名获取cron表达式?

10

我正在使用Quartz Scheduler v.1.8.0。

如何获取已分配/附加到作业并使用CronTrigger调度的cron表达式?在这种情况下,我有作业名称和组名称。虽然许多触发器可以指向同一个作业,但在我的情况下只有一个。

Scheduler类中有一个可用的方法Scheduler.getTriggersOfJob(jobName, groupName),但它仅返回Trigger数组。

示例cron表达式:0 /5 10-20 * * ?

注意:CronTrigger扩展了Trigger

1个回答

21
您可以使用Scheduler.getTriggerOfJob方法。此类返回给定jobName和groupName的所有触发器,结果为一个Trigger数组。
然后,分析该数组的内容,测试触发器是否为CronTrigger,并进行强制类型转换以获取CronTrigger实例。然后,getCronExpression()方法应返回您要查找的内容。
以下是示例代码:
Trigger[] triggers = // ... (getTriggersOfJob)
for (Trigger trigger : triggers) {
    if (trigger instanceof CronTrigger) {
        CronTrigger cronTrigger = (CronTrigger) trigger;
        String cronExpr = cronTrigger.getCronExpression();
    }
}

谢谢,我能看到我的cron表达式了。顺便说一下,你代码示例中有一个小错误:Cron**T**rigger cronTrigger = (CronTrigger) trigger; - Gnanam

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接