2015-03-30 6 views
6

Ich habe den folgenden Weg verwendet, um den Zeitplan alle zwei Wochen an Montagen zu laufen.Wie kann ich alle zwei Wochen montags und dienstags einen Quarz-Zeitplan erstellen?

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

Aber wie kann ich einen einzigen Zeitplan verwenden, um montags und dienstags sowie zu laufen. Bitte um Rat.

Antwort

0

Verwenden Sie den folgenden Ausdruck, um einen Job so zu planen, dass er abwechselnd am Montag und Dienstag ausgeführt wird.

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

Hier ist, wie der Ausdruck beschrieben wird.

0 - 0. sec

0 - 0. min

0 - 0. hr

1-7,15-21,29-31 - an jedem zweiten Woche des Monats

  • - jeder Monat

1,2 - Am Montag und Dienstag

  • - Jedes Jahr.
+0

Cronmaker.com sagt, dass dieser Ausdruck ungültig ist. Bitte helfen Sie –

5

Sie können die Wochentage angeben, mit 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

Dies ist ungültiger Code. Sie können nicht zwei verschiedene Arten von Zeitplänen angeben (hier Tages- und Kalenderzeit). –

1

ich einen Job mit zwei verschiedenen Trigger schaffen würde. Jeder Auslöser wird zweiwöchentlich (oder halbmonatlich) ausgelöst.