具有新触发器集的Quartz.NET重新计划作业

ayk*_*ayk 6 .net c# quartz-scheduler job-scheduling

我有一个Quartz作业,该作业计划有一组触发器,执行时间为3到5分钟。但是在将来的任何时候(可能是一周后或几分钟后),我可能都需要使用新的触发器集重新安排它的时间。触发器集上会有一些添加或删除。

如何使用新的触发器集重新计划作业?这里的窍门是,我想确保当时没有活着的工作实例,这样我就可以可靠地重新计划我的工作了。谢谢你的帮助...

Nic*_*ris 4

据我记得,你可以这样做:

List<JobExecutionContext> context = scheduler.GetCurrentlyExecutingJobs()
Run Code Online (Sandbox Code Playgroud)

迭代列表并调用 GetJobInstance() (或类似的方法)来查找为其创建上下文的作业,然后检查它是否是您感兴趣的作业。如果不是,您可以使用相同的触发器重新安排。尝试这样的事情:

Trigger trigger = Global.scheduler.GetTrigger("testTrigger","triggerGroup");

trigger.set(); 

Global.scheduler.RescheduleJob(trigger.JobName, trigger.JobGroup, trigger);
Run Code Online (Sandbox Code Playgroud)