Heim >Backend-Entwicklung >PHP-Tutorial >So richten Sie in Ihrer Laravel -App einen Cron -Job ein

So richten Sie in Ihrer Laravel -App einen Cron -Job ein

Joseph Gordon-Levitt
Joseph Gordon-LevittOriginal
2025-02-16 12:06:12352Durchsuche

In diesem Artikel wird erläutert, wie die Aufgabenplaner von Laravel verwendet werden, um wiederkehrende Verwaltungsaufgaben auf einem Server zu verwalten, wodurch Artisan -Befehle und Cron nutzt. Lassen Sie uns die Erläuterung rationalisieren:

How to Set Up a Cron Job in Your Laravel App

Schlüsselkonzepte:

  • Cron: Ein Taskplaner eines Unix-ähnlichen Systems mit crontab (Konfigurationsdatei). Laravel-Aufgaben sind typischerweise CLI-Mode-PHP-Skripte.
  • Laravel Artisan -Befehle: Erstellen Sie robuste CLI -Skripte mit php artisan make:console. Dies erzeugt ein Befehlsklassen -Framework für angepasste Aufgaben.
  • Laravel Task Scheduler: Aufgaben in der schedule -Methode der Kernel -Kläufe (app/console/kernel.php) einfach planen. Unterstützt stündliche, tägliche, wöchentliche, monatliche und kundenspezifische Cron -Zeitpläne.
  • Scheduler -Start: erfordert einen einzelnen Cron -Job auf dem Server: * * * * * php /path/to/artisan schedule:run 1>> /dev/null 2>&1 (läuft jede Minute). Laravel verarbeitet die Frequenz- und Überlappungsprävention.

Cron -Grundlagen (kurz):

Cron verwendet einen Fünf-Feld-Ausdruck (Minute, Stunde, Tag des Monats, ein Tag der Woche), um die Planung zu definieren. * repräsentiert alle Werte. Beispiel: 30 12 * * * command/to/run (läuft täglich um 12:30 Uhr).

Erstellen von Laravel Artisan -Befehlen:

Ein Befehl erstellen ist einfach:

  1. ein Befehlsskelett erzeugen: php artisan make:console HappyBirthday --command=sms:birthday
  2. Ändern Sie die Methode handle() in der generierten Befehlsklasse (App/Konsole/Befehle/HappyBirthday.php), um Ihre Aufgabenlogik zu enthalten. Beispiel (Senden von Geburtstags -SMS):
<code class="language-php">public function handle()
{
    $users = User::whereBirthDate(date('m-d'))->get();
    foreach ($users as $user) {
        if ($user->cellphone) {
            SMS::to($user->cellphone)->msg('Happy Birthday, ' . $user->fname . '!')->send();
        }
    }
    $this->info('Birthday messages sent!');
}</code>
  1. Registrieren Sie den Befehl in app/Console/Kernel.php im $commands -Array.

Planungsbefehle:

Verwenden Sie die Methode schedule in app/Console/Kernel.php:

<code class="language-php">protected function schedule(Schedule $schedule)
{
    $schedule->command('sms:birthday')->daily(); // Runs daily
    $schedule->command('anotherCommand')->hourly(); // Runs hourly
    $schedule->command('myTask')->dailyAt('09:30'); // Runs daily at 9:30 AM
    $schedule->command('weeklyTask')->weekly()->mondays(); // Runs every Monday
    $schedule->command('customCron')->cron('0 0 * * *'); // Runs daily at midnight (custom Cron expression)
    $schedule->command('conditionalTask')->daily()->when(function () { return condition(); }); //Conditional execution
}</code>

Starten Sie den Scheduler:

Fügen Sie den oben genannten Einzel -Cron -Job zum Crontab Ihres Servers hinzu. Der Scheduler von Laravel verwaltet den Rest.

häufig gestellte Fragen (FAQs):

(Die ursprünglichen FAQs sind gut geschrieben und umfassend; keine Änderungen erforderlich.)

Diese überarbeitete Antwort behält die ursprünglichen Informationen bei und verbessert die Klarheit und Struktur. Die Code -Beispiele sind auch für Lesbarkeit und Best Practices geringfügig verbessert.

Das obige ist der detaillierte Inhalt vonSo richten Sie in Ihrer Laravel -App einen Cron -Job ein. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn