Laravel Task Scheduler
Mit dem Task Scheduler bietet Laravel eine einfache Alternative zum Anlegen vieler einzelner Crons an.
Im Task Scheduler können beliebig viele Tasks angelegt und mit einem Ausführungsintervall markiert werden.
Man braucht dann nur noch einen einzelnen Cron, der in regelmäßigen Abständen diesen Artisan-Befehl ausführt:
php artisan schedule:run
Neuen Task anlegen:
In der Datei app\Console\Kernel.php
können neue Tasks in der schedule
-Methode hinzugefügt werden.
protected function schedule(Schedule $schedule) { $schedule->call(function () { // Task-Implementierung.. })->everyFiveMinutes(); }
Der noch leere Task im Beispiel würde alle 5 Minuten ausgeführt werden. Andere Zeitintervalle sind möglich.
So gibt es entsprechend zum Beispiel ->hourly()
oder ->daily()
;
Die Ausführungszeit lässt sich aber noch genauer einstellen, zum Beispiel ->dailyAt('13:00')
oder ->weeklyOn(2, '13:35')
(Dienstags um 13:35 Uhr).
Eine ausführlichere Liste der möglichen Zeitintervalle findet ihr hier.
Eigene Tasks als Commands definieren
Anstatt die eigenen Tasks direkt in Kernel.php
zu definieren, kann man diese auch als Artisan Befehle anlegen und die konkrete Implementierung entsprechend dorthin auslagern.
php artisan make:command mytask
Der Task lässt sich dann in Form von command:name
in Kernel.php
einfügen.
protected function schedule(Schedule $schedule) { $schedule->command('command:name')->everyFiveMinutes(); }
Mit der sehr sprechenden Syntax könnte der Task Scheduler in vielen Fällen eine schöne Alternative zu herkömmlichen Crons sein. Außerdem positiv ist, dass die im Code definierten Tasks so auch einfach zusammen mit dem Projekt-Code versioniert werden können.
Du arbeitest in einer Agentur oder als Freelancer?
Dann wirf doch mal einen Blick auf unsere Software FeatValue.
Über uns
Wir entwickeln Webanwendungen mit viel Leidenschaft. Unser Wissen geben wir dabei gerne weiter. Mehr über a coding project