在Quartz调度程序中添加触发器以供将来使用

时间:2012-02-28 13:13:22

标签: java quartz-scheduler

Quartz API提供了一种方法,我可以通过执行类似

之类的操作创建作业并将其添加到调度程序中以供将来使用
SchdularFactory.getSchedulerInstance().addJob(jobDetail, false); 

这为我提供了创建作业的灵活性,可以使用调度程序将它们存储起来,并在以后的阶段使用它们。 我想知道是否有任何方法可以创建触发器并将它们添加到调度程序以供将来使用。

不确定这是否是有效要求,但如果不是我可能做的就是将Trigger与任何给定/现有的工作相关联

1 个答案:

答案 0 :(得分:3)

在Quartz中,作业和触发器之间存在一对多的关系,这是可以理解的:一个作业可以由几个不同的触发器运行,但一个触发器只能运行一个作业。如果需要运行多个作业,请创建一个手动运行这些作业的复合作业。

回到你的问题。创建没有关联触发器的作业是一个有效的用例:你有一个逻辑,然后你会附加一个或多个触发器来在不同的时间点执行它。

相反的情况很奇怪 - 你想创建一个在给定时间运行某些东西的触发器,但你还不知道是什么。我无法想象用例。

请注意,您可以创建一个触发器以供将来使用(将来会有下一个触发时间),但它必须附加一个作业。

最后,请查看官方文档中的How-To: Storing a Job for Later Use