如何在Quartz中重新安排作业执行间隔?

CKi*_*ing 3 java quartz-scheduler

我对Quartz有点新意.有没有办法更新已提交的Quartz作业的作业执行间隔?此间隔是否立即更新?重新安排后,你是否必须再次开始这项工作?

我找到了以下链接,但我不知道哪些库是代码,因为我的石英罐不包含链接中使用的一些类.此外,triggerKey方法来自哪里?这是某种静态导入吗?

http://quartz-scheduler.org/documentation/quartz-2.x/cookbook/UpdateTrigger

我希望在我的一个JUnit测试用例中将作业执行间隔更新为一个非常大的数字,因为我不希望该作业干扰被测试类的状态.测试用例完成后,我想将作业执行间隔重置为将在生产中使用的实际值

Kri*_*ris 14

您必须通过创建新触发器来重新安排作业.

public void execute(JobExecutionContext context) throws JobExecutionException {
    Trigger newTrigger = what_ever_you_want;
    Trigger oldTrigger = context.getTrigger();
    Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();
    scheduler.rescheduleJob(oldTrigger.getKey(), newTrigger);
}
Run Code Online (Sandbox Code Playgroud)

这将使用新的触发器触发时间替换相同的作业.