Как я могу запускать кварцевый график по понедельникам и вторникам каждые две недели?
Я использовал следующий способ запуска расписания каждые две недели по понедельникам.
ITrigger trigger = TriggerBuilder.Create()
.StartAt(DateBuilder.DateOf(StartHour, StartMinute, StartSeconds, StartDate, StartMonth, StartYear))
.WithCalendarIntervalSchedule(x => x.WithIntervalInWeeks(Int32.Parse(nWeekInterval)))
.EndAt(DateBuilder.DateOf(0, 0, 0, EndDay, EndMonth, EndYear))
.Build();
Но как я могу использовать одно расписание для работы по понедельникам и вторникам? Пожалуйста посоветуй.
3 ответа
Вы можете указать дни недели с DailyTimeIntervalScheduleBuilder
var onMondayAndTuesday = DailyTimeIntervalScheduleBuilder.Create()
.OnDaysOfTheWeek(new DayOfWeek[] { DayOfWeek.Monday, DayOfWeek.Tuesday });
var trigger = TriggerBuilder.Create()
.StartAt(DateBuilder.DateOf(StartHour, StartMinute, StartSeconds, StartDate, StartMonth, StartYear))
.WithSchedule(onMondayAndTuesday)
.WithCalendarIntervalSchedule(x => x.WithIntervalInWeeks(Int32.Parse(nWeekInterval)))
.EndAt(DateBuilder.DateOf(0, 0, 0, EndDay, EndMonth, EndYear))
.WithIdentity(triggerKey)
.Build();
Я бы создал одну работу с двумя разными триггерами. Каждый триггер срабатывает раз в две недели (или раз в полгода).
Используйте следующее выражение, чтобы запланировать выполнение задания по разным понедельникам и вторникам.
0 0 0 1-7,15-21,29-31 * 1,2 *
Вот как это выражение описано.
0 - 0 сек
0 - 0 мин
0 - 0 час
1-7,15-21,29-31 - на альтернативной неделе месяца
- - любой месяц
1,2 - в понедельник и вторник
- - В любой год.