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

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

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();

Но как я могу использовать одно расписание для работы по понедельникам и вторникам. Пожалуйста посоветуй.


person Kalpa-W    schedule 30.03.2015    source источник


Ответы (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();
person Nick Patsaris    schedule 30.03.2015
comment
Это неверный код. Вы не можете указать два разных вида расписания (ежедневное и календарное здесь). - person Piotr Perak; 26.04.2017

Я бы создал одно задание с двумя разными триггерами. Каждый триггер срабатывает раз в две недели (или раз в полгода).

person mg3    schedule 30.03.2015

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

0 0 0 1-7,15-21,29-31 * 1,2 *

Вот как описывается это выражение.

0 -- 0-я секунда

0 -- 0-я мин.

0 -- 0th hr

1-7,15-21,29-31 -- в другую неделю месяца

  • -- любой месяц

1,2 -- По понедельникам и вторникам

  • -- Любой год.
person Shetty87    schedule 30.03.2015
comment
Cronmaker.com говорит, что это выражение недействительно. Пожалуйста помоги - person Kalpa-W; 30.03.2015
comment
Shetty87 Не могли бы вы опубликовать полный пример работы кварцевого cron? - person elemer82; 23.08.2019