PHP-Aufgabenplaner: cron-ähnliche Aufgaben ohne crond

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

Was ist ein PHP-Task-Scheduler?

Ein Task-Scheduler (Job Scheduler) ist eine Bibliothek für PHP, die es ermöglicht, periodische Aufgaben (Cron-Jobs) direkt aus dem Anwendungscode heraus auszuführen, ohne auf den systemeigenen crond angewiesen zu sein. Sie ist besonders nützlich auf Shared-Hostings, wo der Zugriff auf crontab eingeschränkt ist, oder in containerisierten Umgebungen (Docker).

Wozu braucht man einen Scheduler?

  • Autonomie — alle Regeln für die Periodizität werden im PHP-Code gespeichert, nicht in Systemkonfigurationen.
  • Flexibilität — Zeitpläne können dynamisch geändert, Aufgaben angehalten und die Ausführung protokolliert werden.
  • Integration — lässt sich leicht in Frameworks (Laravel, Symfony) und ORMs einbetten.

Installation

Installieren Sie es via Composer:

composer require dragonmantank/cron-expression

Dies ist die grundlegende Bibliothek für die Arbeit mit Cron-Ausdrücken. Für einen vollwertigen Scheduler wird oft peppeocchi/php-cron-scheduler verwendet:

composer require peppeocchi/php-cron-scheduler

Hauptfunktionen

  • Parsen von Cron-Ausdrücken — Prüfung, ob die aktuelle Zeit dem Muster entspricht (* * * * *).
  • Multitasking — Ausführung mehrerer Aufgaben in einem Prozess.
  • Parallelität — via exec() oder pcntl_fork().
  • Protokollierung — Ausgabe von stdout/stderr in eine Datei.
  • Fehlerbehandlung — Wiederholungsversuche, Benachrichtigungen.

Codebeispiel

<?phprequire 'vendor/autoload.php';

use GO\\Scheduler;

$scheduler = new Scheduler();

// Aufgabe: jede Minute$scheduler->call(function() { echo "Ausgeführt um " . date('Y-m-d H:i:s') . "";})->everyMinute();

// Aufgabe: jede Stunde um 30 Minuten$scheduler->call('cleanup_logs')->at('30 * * * *');

// Aufgabe: an Werktagen um 9:00 Uhr$scheduler->exec('php artisan report:generate')->at('0 9 * * 1-5');

// Start aller bereiten Aufgaben$scheduler->run();

Wann verwenden

Ein PHP-Task-Scheduler ist ideal für:

  • das Versenden von E-Mail-Newslettern nach Zeitplan;
  • das Bereinigen veralteter Daten (Logs, Sessions);
  • das Generieren von Berichten außerhalb der Spitzenzeiten;
  • die Synchronisation mit externen APIs (einmal pro Stunde);
  • das Aktualisieren von Caches (alle 5 Minuten).

Ersetzen Sie nicht den systemeigenen Cron für kritische Systemoperationen (DB-Backup, Zertifikatserneuerung) — verwenden Sie ihn als zusätzliche Schicht für die Geschäftslogik.

Empfehlungen