Quartz.net:避免庞大的数据库,停止未来的触发器,转储预定的任务

时间:2010-10-20 01:57:40

标签: scheduling quartz.net

那里有真正的石英大师的几个问题!

我是一名Quartz.net初学者,希望在我被烧毁之前得到一些建议:

1)我安排了一堆工作/触发器在将来的特定时间发生。完成这些任务后,我不再使用数据库中的作业/触发器信息。有什么我需要做的,以避免大量数据库积累Quartz事件,或者他们是否自己照顾并自动删除?

2)我的各种任务定期重复。但有时,当我正在运行实际工作时,我意识到我不再希望在工作到期时间之前继续运行定期事件。如何在执行的作业中停止所有未来的触发器?

3)有没有办法转储所有计划任务。有时像“scheduler.DumpAll();-)”?

提前致谢!

2 个答案:

答案 0 :(得分:4)

  1. 请参阅LeftyX的回答(以及我的后续评论):在正常情况下,当触发器没有更多开火时间时,它会被删除,而当一个工作没有更多触发器时,它将被删除

  2. 您可以使用scheduler.unschduleJob(),scheduler.deleteJob(),scheduler.pauseJob(),scheduler.pauseTrigger() - 具体取决于您实际需要的特定行为。

  3. 不。

答案 1 :(得分:1)

也许我迟到了;-)但我最近刚开始使用Quartz.net。 文件说:

Durable - if a job is non-durable, it is automatically deleted from the 
scheduler once there are no longer any active triggers associated with it.

因此您可以为作业详细信息定义Durable = false,并在过期时将其删除。