我需要创建一个触发器,该触发器将在特定的DateTimes列表中触发。
我知道我可以为每个datetime
创建一个简单的触发器。
我目前的代码:
var trigger = (ICronTrigger)TriggerBuilder.Create()
.WithIdentity(triggerKey)
.ForJob(job)
.WithCronSchedule(cron)
.StartAt(DateTime.UtcNow)
.WithPriority(1)
.Build();
答案 0 :(得分:0)
您需要将触发器与日历相关联,然后在日历中选择要激活作业的日期。
来自文档
Quartz Calendar对象(不是java.util.Calendar对象)可以 在定义和存储触发器时与触发器相关联 在调度程序中。日历对于排除时间块非常有用 从触发器的射击时间表。例如,你可以创建 每个工作日上午9:30触发工作的触发器,但随后添加一个 排除所有商务假期的日历。
在网址上查看更多内容 http://www.quartz-scheduler.org/documentation/quartz-2.x/tutorials/tutorial-lesson-04.html
答案 1 :(得分:0)
在WithCronSchedule上使用StartAt不会像我想象的那样工作。这里的开始只是告诉触发器应该何时开始使用cron。
根据您的要求,您可以根据需要创建一个cron。例如:
0 0 5,10 * * ?
每天早上5点和10点触发。
除此之外,你可能最好在每个特定日期制作一个触发器,如果你需要在schedulled run上取消它会更灵活。如果您将所有触发器设置在同一个触发器组中,您也可以立即将它们全部锁定