如何在Quartz.Net中添加新作业或更新现有作业的触发器?

use*_*587 3 c# cron quartz-scheduler quartz.net

我从数据库中获取诸如开始时间和生效日期之类的工作详细信息,并根据工作详细信息创建工作,但是如果我有新工作的另一个条目或者已更改计划工作的开始时间该怎么办? ,因此如何在作业计划程序中添加新作业或在计划程序中更改新的开始时间。

我正在使用C#.net。

Ad *_*tum 6

我不知道是否无法在先前版本的Quartz中更新现有的触发器,但是有可能在较新的版本中(从2. *开始)更新触发器。

更新可以通过以下方式实现(适用于Quartz.net);

// retrieve the trigger
Trigger oldTrigger = sched.GetTrigger(new TriggerKey("oldTrigger", "group1"));

// obtain a builder that would produce the trigger
TriggerBuilder tb = oldTrigger.GetTriggerBuilder();

// update the schedule associated with the builder, and build the new trigger
// (other builder methods could be called, to change the trigger in any desired way)
Trigger newTrigger = tb.WithSimpleSchedule(x => x.WithIntervalInSeconds(10).WithRepeatCount(10))
    .Build();

sched.RescheduleJob(oldTrigger, newTrigger);
Run Code Online (Sandbox Code Playgroud)

资源


jvi*_*lta 2

您将需要使用新的触发器来安排作业。触发器一旦创建就无法更新。

  • 其实2.1.x之后就可以了 (4认同)