Kann ich mit Quartz Scheduler jeden zweiten Monat am 30. Tag feuern, aber wenn der Monat keinen 30. Tag hat, am letzten Tag feuern?

8

Kann ich die Bibliothek Quartz Scheduler verwenden, um einen Zeitplan mit folgenden Einstellungen zu erstellen?:

  • Ab dem 30. Dezember 2014
  • Führen Sie jeden 30. Tag aus
  • Jeden zweiten Monat konsequent
  • Wenn der Monat keinen 30. Tag hat, sollte die Aktion am letzten Tag des Monats erfolgen.

Der resultierende Zeitplan ist also:

  • 30. Dezember 2014
  • Feb 28 , 2015
  • 30. April 2015
  • ... und so weiter

Von dem, was ich gelernt habe:

  1. CronTrigger lässt dies nicht zu (es könnte eingerichtet werden nur an bestimmten Monaten ausgelöst werden und nicht an Intervallen ),
  2. CalendarIntervalTrigger überspringt Monate, die keinen 30. Tag haben (Trigger) erstellt mit folgendem Code)

    %Vor%

Wenn nein, gibt es Alternativen (sollte auf JBoss eap 6.2.0 funktionieren)?

    
n1k1ch 24.09.2014, 13:40
quelle

1 Antwort

5

Sie können dies in Quartz erreichen, aber Sie müssen das normale Verhalten verdrehen, indem Sie CalendarIntervalTrigger verwenden, um einen Job auszulösen, der berechnet, wann Ihr 'echter' Job geplant werden sollte.

Sie planen einen Auslöser, der jeden 1. Ihrer Planungsmonate auslöst:

%Vor%

Und im SchedulingCalculationJob Job berechnen Sie Ihren 'realen' Job-Scheduling-Tag:

%Vor%

Es ist ein bisschen Sioux, aber ich benutze es bereits und ich arbeite gut.

    
Kraiss 24.09.2014, 14:07
quelle