In diesem Artikel wird Crunz vorgestellt, eine vielseitige PHP -Jobplanungsbibliothek. Crunz inspiriert vom Task Scheduler von Laravel und bietet eine verbesserte Flexibilität und Benutzerfreundlichkeit für die Verwaltung von Cron -Jobs. Der Autor begrüßt Beiträge und Feedback.
Ein solides Verständnis von Cron -Jobs wird angenommen. Siehe bei Bedarf die bereitgestellte Vorgehensweise.
Schlüsselmerkmale:
daily()
, everyFiveMinutes()
). from()
, to()
, between()
, when()
und skip()
zur Verwaltung der Aufgabenausführung. Erste Schritte:
installieren Sie über Komponist:
composer require lavary/crunz
a crunz
Befehlszeilen-Dienstprogramm ist verfügbar.
Wie es funktioniert:
Definieren Sie Cron -Jobs in PHP -Dateien (z. B. innerhalb eines tasks/
-Verzeichnungen) mit der Crunz -Schnittstelle, anstatt direkt in einer crontab
-Datei. Ein einzelner Cron -Job (läuft jede Minute) delegiert die Ausführung an Crunz 'Event Runner:
* * * * * /project/vendor/bin/crunz schedule:run
schedule:run
verwaltet die Aufgabenausführung basierend auf definierten Zeitplänen.
Erstellung von Aufgabendateien:
Aufgabendateien (konventionell enden in Tasks.php
) enthalten Aufgabendefinitionen. Crunz scannt das tasks/
Verzeichnis rekursiv. Sie können das Task-Verzeichnis über Konfiguration oder Befehlszeilenargumente angeben.
Beispielaufgabe:
<?php // tasks/MyTasks.php use Crunz\Schedule; $schedule = new Schedule(); $schedule->run('my_command') ->daily() ->description('My daily task.'); return $schedule;
Denken Sie daran, das $schedule
-Objekt zurückzugeben.
Befehle und Schließungen:
run()
akzeptiert Befehle oder PHP -Schließungen:
$schedule->run('/usr/bin/my_script.sh', ['--option' => 'value']) ->hourly(); $schedule->run(function () { /* code */ }) ->everyTenMinutes();
Verzeichnisänderungen: Verwenden Sie in()
, um das Arbeitsverzeichnis vor der Ausführung der Aufgaben zu ändern.
Planungsoptionen:
hourly()
, daily()
, weekly()
, monthly()
, quarterly()
, yearly()
. everyFiveMinutes()
, everyTwelveHours()
usw. on('14:00 2025-03-15')
, at('14:00')
, dailyAt('14:00')
. mondays()
, tuesdays()
usw. (Verwendung mit anderen Frequenzmethoden). cron('30 12 * * 1')
. Tasklebensdauer: from()
, to()
, between()
Steuerungspflicht.
bedingte Ausführung: und when()
Methoden ermöglichen eine bedingte Aufgabenausführung basierend auf Rückrufe. skip()
Konfiguration (YAML): a Datei (veröffentlicht mit crunz.yaml
) Ermöglicht die Anpassung des Quellverzeichnisses, der Datei -Suffix, der Protokollierung und der E -Mail -Benachrichtigungen. crunz publish:config
Parallelität und Sperren: Crunz fährt parallel mit Aufgaben aus. symfony/Process
verhindert überlappende Läufe. preventOverlapping()
Ausgabe und Fehlerbehandlung: Protokollausgabe und Fehler zu Dateien (in konfigurieren) oder per E -Mail senden. crunz.yaml
Rückrufe behandeln Fehler. onError()
Pre/Post-Prozess-Hooks: und before()
Rückrufe ermöglichen die Ausführung des Codes vor und nach Aufgaben. after()
Befehlszeilen-Dienstprogramme: listet Aufgaben auf; crunz schedule:list
Erstellt Task -Datei -Skelette. crunz make:task
Webschnittstelle: Verwenden Sie (eine Laravel-basierte Schnittstelle) für eine webbasierte Verwaltungslösung. lavary/crunz-ui
Schlussfolgerung:
Verwalten von Cron -Jobs in Ihrem Codebasis bietet eine Versionskontrolle und eine einfachere Zusammenarbeit. Crunz vereinfacht diesen Prozess erheblich.
häufig gestellte Fragen (FAQs): (Die ursprünglichen FAQs sind bereits gut geschrieben und erfordern keine signifikante Änderung für diese Umschreibung.)
Das obige ist der detaillierte Inhalt vonFramework-agnostische PHP-Cronjobs, die mit Crunz leicht gemacht wurden!. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!