Как я могу запускать кварцевый график по понедельникам и вторникам каждые две недели?

Я использовал следующий способ запуска расписания каждые две недели по понедельникам.

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 - в понедельник и вторник

  • - В любой год.
Другие вопросы по тегам