Class CronDefinition

java.lang.Object
de.bsvrz.dav.daf.util.cron.CronDefinition

public final class CronDefinition
extends java.lang.Object
Definition eines Cron-Eintrages.

Ein Cron-Eintrag besteht aus 5 Werten:

  1. Minute (0-59)
  2. Stunde (0-23)
  3. Tag des Monats (1-31)
  4. Monat (1-12 oder Monatsnamen)
  5. Tag der Woche (0-7, 0 und 7 sind Sonntag, oder Namen)

Soll ein Wert ignoriert werden, sind Sternchen möglich.

Listen und Bereiche können ebenfalls angegeben werden mit "," und "-". Mit / kann der Befehl alle x Intervalle ausgeführt werden.

Wochen und Monatsnamen sind in deutscher Sprache anzugeben und werden tolerant behandelt. Gültig für Sonntag ist beispielsweise "so", "Sonntag", usw., Groß- und Kleinschreibung ist unerheblich, es können sich jedoch je nach Java-Implementierung kleine Unterschiede ergeben (unter Java 8 ist "Son" gültig, unter Java 9 nicht).

Beispiele:


      Min    Std  Tag  Mon   WT    Bedeutung
        5      0    *    *    *    Jeden Tag um 00:05:00
       15  14,20    1    *    *    Am 1. jeden Monats um 14:15:00 und um 20:15:00
        0     22    *    *  1-5    An jedem Werktag (Mo-Fr) um 22:00:00
       23  * / 2    *    *    *    Alle 2 Stunden um jeweils xx:23:00, also 00:23:00, 02:23:00, ...
        5      4    *    *   so    Jeden Sonntag um 04:05:00
        0      1    1   12    1    Jeden 1. Dezember UND jeden Montag im Dezember jeweils um 01:00:00
 

Für weitere Erklärungen und Beispiele siehe Dokumentation der /etc/crontab oder https://de.wikipedia.org/wiki/Cron

  • Field Summary

    Fields
    Modifier and Type Field Description
    static CronDefinition EVERY_DAY  
    static CronDefinition EVERY_HOUR  
    static CronDefinition EVERY_MINUTE  
    static CronDefinition EVERY_MONTH  
    static CronDefinition EVERY_WEEK  
    static CronDefinition EVERY_YEAR  
  • Constructor Summary

    Constructors
    Constructor Description
    CronDefinition​(java.lang.String definition)
    Erstellt eine neue Cron-Definition zum periodischen Ausführen von Aufgaben.
  • Method Summary

    Modifier and Type Method Description
    boolean equals​(java.lang.Object o)  
    java.util.List<java.lang.String> getSegments()
    Gibt eine Liste mit 5 Strings zurück, die die Einträge für Minuten, Stunden, Monatstag, Monat und Tag der Woche in dieser Reihenfolge repräsentiert.
    int hashCode()  
    long nextScheduledTime​(long startTimeMillis)
    Gibt den nächsten geplanten Zeitpunkt zurück, hierfür wird die System-Zeitzone verwendet.
    long nextScheduledTime​(long startTimeMillis, java.time.ZoneId zoneId)
    Gibt den nächsten geplanten Zeitpunkt zurück
    java.lang.String toString()  

    Methods inherited from class java.lang.Object

    clone, finalize, getClass, notify, notifyAll, wait, wait, wait
  • Field Details

  • Constructor Details

    • CronDefinition

      public CronDefinition​(java.lang.String definition) throws java.lang.IllegalArgumentException
      Erstellt eine neue Cron-Definition zum periodischen Ausführen von Aufgaben. Diese Klasse dient nur zum Festlegen der Zeitpunkte. Zum Planen von Aufgaben bitte CronScheduler.schedule(Runnable, CronDefinition) verwenden.
      Parameters:
      definition - Definition, siehe Dokumentation von . Beispiel: "* * * * *" führt eine Aufgabe jede Minute aus.
      Throws:
      java.lang.IllegalArgumentException - Wenn der übergebene String nicht verarbeitet werden kann.
  • Method Details

    • nextScheduledTime

      public long nextScheduledTime​(long startTimeMillis)
      Gibt den nächsten geplanten Zeitpunkt zurück, hierfür wird die System-Zeitzone verwendet.
      Parameters:
      startTimeMillis - Startzeit
      Returns:
      Nächster Zeitpunkt in Millisekunden analog zu System.currentTimeMillis()
    • nextScheduledTime

      public long nextScheduledTime​(long startTimeMillis, java.time.ZoneId zoneId)
      Gibt den nächsten geplanten Zeitpunkt zurück
      Parameters:
      startTimeMillis - Startzeit
      zoneId - Zeitzine
      Returns:
      Nächster Zeitpunkt in Millisekunden analog zu System.currentTimeMillis()
      Since:
      3.13
    • getSegments

      public java.util.List<java.lang.String> getSegments()
      Gibt eine Liste mit 5 Strings zurück, die die Einträge für Minuten, Stunden, Monatstag, Monat und Tag der Woche in dieser Reihenfolge repräsentiert. Dies entspricht dem im Kontruktor übergebenen String, wobei überflüssige Leerzeichen entfernt wurden und der String entsprechend der Cron-Spezifikation in seine 5 Abschnitte geteilt wurde.
      Returns:
      Liste mit 5 Strings, die die Cron-Definition repräsentieren
    • toString

      public java.lang.String toString()
      Overrides:
      toString in class java.lang.Object
    • equals

      public boolean equals​(java.lang.Object o)
      Overrides:
      equals in class java.lang.Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class java.lang.Object