我知道如何在一天的特定时间每天解雇我的一个例程。这是代码。
IScheduler sched = null;
//construct a scheduler factory
ISchedulerFactory schedFact = new StdSchedulerFactory();
//get a scheduler
sched = schedFact.GetScheduler();
sched.Start();
IJobDetail job = JobBuilder.Create<frmMain>()
.WithIdentity("Job", "group")
.Build();
ITrigger trigger = TriggerBuilder.Create()
.WithDailyTimeIntervalSchedule
(s =>
s.WithIntervalInHours(24)
.OnEveryDay()
.StartingDailyAt(TimeOfDay.HourAndMinuteOfDay(19, 07))
)
.Build();
sched.ScheduleJob(job, trigger);
现在假设我需要在一天中的不同时间触发许多例程。
说例程1应该在08:00开火,例程2应该在15:00开火,例程2应该在18:00开火
现在给我建议如何在一天中的不同时间点燃不同的例程。感谢
答案 0 :(得分:2)
就像stuartd所说,你的工作需要多个触发器(例程2)。我还建议使用CronTrigger
代替SimpleTrigger
。您可以使用
CronTrigger
var trigger1 = TriggerBuilder.Create()
.WithDescription(name)
.WithSchedule(CronScheduleBuilder.DailyAtHourAndMinute(15, 0))
.Build();
var trigger2 = TriggerBuilder.Create()
.WithDescription(name)
.WithSchedule(CronScheduleBuilder.DailyAtHourAndMinute(18, 0))
.Build();
然后用两个触发器安排你的工作:
sched.ScheduleJob(job, trigger1);
sched.ScheduleJob(job, trigger2);