我正在尝试创建一个每天执行两次的Windows服务。 我成功地使用添加到单个作业的两个触发器来创建它。
var job = JobBuilder.Create<Job>().StoreDurably().WithIdentity("Report_Name", "Report_Group").Build();
scheduler.AddJob(job, true);
var trigger_1 = TriggerBuilder.Create()
.WithIdentity("Report_Name_1", "Report_Group_A")
.StartNow()
.WithCronSchedule(string.Format("0 {0} {1} ? * *", Utility.Schedule_StartTime_1.Minute, Utility.Schedule_StartTime_1.Hour)) //0 Min hour
.ForJob(job)
.Build();
var trigger_2 = TriggerBuilder.Create()
.WithIdentity("Report_Name_2", "Report_Group_B")
.StartNow()
.WithCronSchedule(string.Format("0 {0} {1} ? * *", Utility.Schedule_StartTime_2.Minute, Utility.Schedule_StartTime_2.Hour)) //0 Min hour
.ForJob(job)
.Build();
scheduler.ScheduleJob(trigger_1);
scheduler.ScheduleJob(trigger_2);
scheduler.Start();
我可以使用单个触发器添加多个cron计划
答案 0 :(得分:2)
不,触发器只能有一个时间表。
为什么这样做的主要原因之一是防止在调度程序不清楚如何解决之间的竞争的情况 条件。
想象一下,你有一个有两个相交时间表的工作:让我们说你想每15分钟和每小时运行一次工作,执行它需要10分钟。在这种情况下,您需要在
时指定处理方案的方式为了允许处理此类情况,触发器具有优先级和失火指令等属性。