Настройка CronString для двухнедельного задания в 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 2

2 ответа:

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

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

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

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

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

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