PHP-Aufgabenplaner: Bibliothek cron‑expression für flexible Zeitpläne

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

PHP-Aufgabenplaner: Bibliothek cron‑expression



Bei der Entwicklung von Webanwendungen in PHP besteht häufig die Notwendigkeit, bestimmte Aktionen nach einem Zeitplan auszuführen: Benachrichtigungen senden, den Cache leeren, Berichte erstellen oder Daten synchronisieren. Der integrierte Cron in Linux ist ein leistungsstarkes Werkzeug, aber seine Konfiguration erfordert Serverzugriff und ist für die dynamische Planung innerhalb von PHP-Code nicht immer praktisch. Die Bibliothek cron‑expression löst dieses Problem – sie ermöglicht das Parsen, Überprüfen und Berechnen von Ausführungszeiten von Aufgaben basierend auf CRON-Ausdrücken direkt in PHP.



In diesem Artikel werden wir uns ansehen, wie man die Bibliothek cron‑expression installiert und verwendet, einen einfachen Aufgabenplaner schreibt und Beispiele mit realen Szenarien betrachtet.



Was ist cron‑expression?



cron‑expression ist eine PHP-Bibliothek für die Arbeit mit CRON-Ausdrücken. Ein CRON-Ausdruck ist eine Zeichenfolge, die aus fünf durch Leerzeichen getrennten Feldern besteht:



* * * * *| | | | || | | | +---- Wochentag (0–7) (Sonntag = 0 oder 7)| | | +------ Monat (1–12)| | +-------- Tag des Monats (1–31)| +---------- Stunde (0–23)+------------ Minute (0–59)


Zum Beispiel bedeutet der Ausdruck 30 4 * * 1-5: „jeden Wochentag um 4:30 Uhr morgens“. Die Bibliothek ermöglicht:



  • Zu überprüfen, ob die aktuelle Zeit dem angegebenen Ausdruck entspricht.
  • Das nächste Ausführungsdatum einer Aufgabe zu erhalten.
  • Das vorherige Ausführungsdatum zu berechnen.
  • Mit Bereichen, Schritten und Wertelisten zu arbeiten.


Installation



Die Installation erfolgt über Composer. Öffnen Sie ein Terminal im Stammverzeichnis Ihres Projekts und führen Sie Folgendes aus:



composer require mtdowling/cron-expression


Nach der Installation binden Sie den Composer-Autoloader in Ihr PHP-Skript ein:



require 'vendor/autoload.php';


Hauptfunktionen und Beispiele



1. Überprüfung der aktuellen Zeit



Angenommen, wir möchten eine Aufgabe alle 15 Minuten ausführen. CRON-Ausdruck: */15 * * * *. Erstellen wir ein Objekt und prüfen, ob die Aufgabe jetzt gestartet werden soll:



<?phpuse Cron\\CronExpression;

$expression = CronExpression::factory('*/15 * * * *');if ($expression->isDue()) { echo "Die Aufgabe sollte jetzt ausgeführt werden!";} else { echo "Die Zeit ist noch nicht gekommen.";}?>


Die Methode isDue() prüft, ob die aktuelle Zeit mit dem Ausdruck übereinstimmt. Standardmäßig wird die Serverzeitzone verwendet.



2. Nächstes Ausführungsdatum erhalten



Manchmal muss man im Voraus wissen, wann eine Aufgabe ausgeführt wird:



<?phpuse Cron\\CronExpression;

$expression = CronExpression::factory('0 6 * * 1-5'); // jeden Wochentag um 6:00 Uhr$nextRun = $expression->getNextRunDate();echo "Nächste Ausführung: " . $nextRun->format('Y-m-d H:i:s');?>


Ergebnis: Nächste Ausführung: 2025-03-10 06:00:00 (wenn heute Freitag ist, dann nächster Montag).



3. Vorheriges Ausführungsdatum



Die Methode getPreviousRunDate() gibt den letzten Zeitpunkt zurück, zu dem die Bedingung erfüllt war:



<?php$prevRun = $expression->getPreviousRunDate();echo "Vorherige Ausführung: " . $prevRun->format('Y-m-d H:i:s');?>


4. Arbeiten mit Zeitzonen



Standardmäßig wird die Serverzeitzone verwendet, aber Sie können Ihre eigene festlegen:



<?php$expression = CronExpression::factory('0 9 * * *');$expression->setTimezone(new DateTimeZone('Europe/Berlin'));if ($expression->isDue()) {    echo "In Berlin ist es jetzt 9:00 Uhr – Zeit zu handeln!";}?>


Erstellen eines einfachen Aufgabenplaners



Jetzt setzen wir alles zusammen und schreiben eine kleine Klasse, die Aufgaben nach einem Zeitplan ausführt. Angenommen, wir haben eine Liste von Aufgaben mit CRON-Ausdrücken und Callbacks.



<?phpclass                    

Empfehlungen