Настройте CronString для задания BiWeekly в Quartz.Net

Как настроить планировщик заданий CronString для Quartz.Net для следующих заданий:

Работа должна выполняться каждые две недели в понедельник в 12:00. то есть он должен работать каждый понедельник, но пропустить одну неделю между ними.

Пример:

1st Run => 19-Nov-2012 [Monday] 12:00 AM
2nd Run => 03-Dec-2012 [Monday] 12:00 AM
3rd Run => 17-Dec-2012 [Monday] 12:00 AM

2 ответа

Решение

На самом деле, вы можете искать CalenderIntervalTrigger, который способен сделать это легко.

var trigger = TriggerBuilder.Create()
    .StartAt(new DateTime(2012, 11, 19, 12, 0, 0).ToUniversalTime())
    .WithCalendarIntervalSchedule(x => x.WithIntervalInWeeks(2))
    .Build();

"Выражение cron" может быть создано следующим образом для любой частоты недели.

int repeatInterval = 2;
int weeklyInterval = repeatInterval*7;
String cronExp="0 0 12 1/ " +weeklyInterval " * ? *";

Создает выражение cron, которое повторяется раз в две недели в 12 часов.

Надеюсь это поможет.

Другие вопросы по тегам