Package de.bsvrz.dav.daf.util.cron
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:
- Minute (0-59)
- Stunde (0-23)
- Tag des Monats (1-31)
- Monat (1-12 oder Monatsnamen)
- 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
All Methods Instance Methods Concrete Methods 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ückjava.lang.String
toString()
-
-
-
Field Detail
-
EVERY_MINUTE
public static final CronDefinition EVERY_MINUTE
-
EVERY_HOUR
public static final CronDefinition EVERY_HOUR
-
EVERY_DAY
public static final CronDefinition EVERY_DAY
-
EVERY_WEEK
public static final CronDefinition EVERY_WEEK
-
EVERY_MONTH
public static final CronDefinition EVERY_MONTH
-
EVERY_YEAR
public static final CronDefinition EVERY_YEAR
-
-
Constructor Detail
-
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 bitteCronScheduler.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 Detail
-
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
- StartzeitzoneId
- 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 classjava.lang.Object
-
equals
public boolean equals(java.lang.Object o)
- Overrides:
equals
in classjava.lang.Object
-
hashCode
public int hashCode()
- Overrides:
hashCode
in classjava.lang.Object
-
-