Croncalc : Ein Ruby -Edelstein zur Berechnung von Cron -Job -Vorkommen. Mit diesem Juwel können Sie leicht feststellen, wann ein Cron -Job auftritt, indem Sie einen Cron -Ausdruck liefern. Zu den wichtigsten Merkmalen gehören die Möglichkeit, Vorkommen zu berechnen :
Dieses Tool kann zur Planung, Prognose und Analyse von Aufgaben in Systemen verwendet werden, die Cron für die Arbeitsplanung verwenden. Sie können den Artikel über Croncalc auch hier lesen.
Installieren Sie das Edelstein durch Ausführung:
$ gem install cron_calc
Nach der Installation cron_calc
können Sie CronCalc
mit der Cron -Zeichenfolge initialisieren.
require 'cron_calc'
cron_calc = CronCalc . new ( '5 5 * * *' )
Jetzt können Sie eine von drei Methoden #in
, #next
, #last
verwenden, um die Vorhandensein von Cron -Jobs innerhalb des bestimmten Zeitraums zu bestimmen.
#in
Berechnet Cron -Job -Vorkommen innerhalb eines bestimmten Zeitraums.
Parameter:
period
- Ein Bereichsobjekt, das die Start- und Endzeiten für die Berechnung definiert. period = Time . new ( 2024 , 1 , 1 , 0 , 0 ) .. Time . new ( 2024 , 1 , 4 , 0 , 0 )
cron_calc . in ( period )
# => [2024-01-01 05:05:00 +0100, 2024-01-02 05:05:00 +0100, 2024-01-03 05:05:00 +0100]
#next
Berechnet die nächsten Vorkommen des Cron -Jobs aus einer bestimmten Startzeit.
Parameter:
count
- (optional, ganzzahl) die Anzahl der zu berechnenden Vorkommen. Standardmäßig 1.after:
- (optional, Zeit, Schlüsselwortargument) die Startzeit, aus der die Ereignisse berechnet werden sollen. Wenn nicht bereitgestellt, standardt die aktuelle Zeit (Zeit.Now).max_years
- (optional, ganzzahlig, keyword argument) Die maximale Anzahl von Jahren, um nach zukünftigen Vorkommen zu suchen. Standardeinstellung auf 5. cron_calc . next
# => [2023-12-20 05:05:00 +0100]
cron_calc . next ( 3 )
# => [2023-12-20 05:05:00 +0100, 2023-12-21 05:05:00 +0100, 2023-12-22 05:05:00 +0100]
cron_calc . next ( 2 , after : Time . new ( 2024 , 1 , 1 , 0 , 0 ) )
# => [2024-01-01 05:05:00 +0100, 2024-01-02 05:05:00 +0100]
#last
Berechnet das letzte 'n' -Ereignis des Cron -Jobs bis zu einer bestimmten Endzeit.
Parameter:
count
- (optional, ganzzahl) die Anzahl der zu berechnenden Vorkommen. Standardmäßig 1.before:
- (optional, Zeit, Schlüsselwortargument) Die Endzeit, aus der die früheren Ereignisse berechnet werden können. Wenn nicht bereitgestellt, standardt die aktuelle Zeit (Zeit.Now).max_years
- (optional, ganzzahlig, keyword -argument) Die maximale Anzahl von Jahren, um nach früheren Vorkommen rückwärts zu suchen. Standardeinstellung auf 5. cron_calc . last
# => [2023-12-19 05:05:00 +0100]
cron_calc . last ( 4 , before : Time . new ( 2024 , 1 , 1 , 0 , 0 ) )
# => [2023-12-31 05:05:00 +0100, 2023-12-30 05:05:00 +0100, 2023-12-29 05:05:00 +0100, 2023-12-28 05:05:00 +0100]
# You can omit the count parameter
CronCalc . new ( '5 5 */5 * SUN' ) . last ( before : Time . new ( 2020 , 1 , 1 , 0 , 0 ) )
# => [2019-12-01 05:05:00 +0100]
# You can combine ',' and '-'
CronCalc . new ( '5 5 5-7,10 FEB *' ) . next ( 5 )
# => [2024-02-05 05:05:00 +0100, 2024-02-06 05:05:00 +0100, 2024-02-07 05:05:00 +0100, 2024-02-10 05:05:00 +0100, 2025-02-05 05:05:00 +0100]
# You can use predefined definitions like @daily, @monthly, etc.
CronCalc . new ( '@monthly' ) . next ( 3 , after : Time . new ( 2024 , 1 , 1 , 0 , 0 ) )
# => [2024-01-01 00:00:00 +0100, 2024-02-01 00:00:00 +0100, 2024-03-01 00:00:00 +0100]
# I want to know when the next 10 Friday the 13ths will be!
CronCalc . new ( '0 0 13 * FRI' ) . next ( 10 )
# =>
# [2024-09-13 00:00:00 +0200,
# 2024-12-13 00:00:00 +0100,
# 2025-06-13 00:00:00 +0200,
# 2026-02-13 00:00:00 +0100,
# 2026-03-13 00:00:00 +0100,
# 2026-11-13 00:00:00 +0100,
# 2027-08-13 00:00:00 +0200,
# 2028-10-13 00:00:00 +0200]
Fehlerberichte und Pull -Anfragen sind auf Github unter https://github.com/mizinsky/cron_calc willkommen.
Das Edelstein ist unter den Bedingungen der MIT -Lizenz als Open Source erhältlich.