Rumah >pembangunan bahagian belakang >tutorial php >Cara Menyiapkan Kerja Cron di Aplikasi Laravel Anda

Cara Menyiapkan Kerja Cron di Aplikasi Laravel Anda

Joseph Gordon-Levitt
Joseph Gordon-Levittasal
2025-02-16 12:06:12348semak imbas

Artikel ini menerangkan cara menggunakan penjadual tugas Laravel untuk menguruskan tugas pentadbiran berulang pada pelayan, memanfaatkan perintah artisan dan cron. Mari kita menyelaraskan penjelasan:

How to Set Up a Cron Job in Your Laravel App

Konsep Utama:

  • Cron: penjadual tugas sistem seperti UNIX menggunakan (fail konfigurasi). Tugas Laravel biasanya skrip CLI-Mode PHP. crontab
  • Perintah Artisan Laravel: Buat skrip CLI yang mantap menggunakan . Ini menghasilkan rangka kerja kelas arahan untuk tugas -tugas yang disesuaikan. php artisan make:console
  • Penjadual Tugas Laravel: mudah menjadualkan tugas dalam kaedah kelas schedule (app/console/kernel.php). Menyokong jadual Cron setiap jam, setiap hari, mingguan, bulanan, dan adat. Kernel
  • Permulaan Penjadual: memerlukan pekerjaan cron tunggal pada pelayan: (berjalan setiap minit). Laravel mengendalikan kekerapan dan pencegahan bertindih. * * * * * php /path/to/artisan schedule:run 1>> /dev/null 2>&1
Asas Cron (ringkas):

Cron menggunakan ungkapan lima bidang (minit, jam, hari bulan, bulan, hari minggu) untuk menentukan penjadualan.

mewakili semua nilai. Contoh:

(berjalan setiap hari pada 12:30). * 30 12 * * * command/to/run

Membuat arahan Artisan Laravel:

Membuat arahan adalah mudah:

menghasilkan kerangka perintah:
  1. php artisan make:console HappyBirthday --command=sms:birthday Ubah suai kaedah
  2. dalam kelas arahan yang dihasilkan (app/konsol/perintah/happybirthday.php) untuk mengandungi logik tugas anda. Contoh (Menghantar SMS Hari Lahir):
  3. handle()
<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>
Daftar perintah dalam
    dalam array
  1. . app/Console/Kernel.php $commands
Perintah penjadualan:

Gunakan kaedah

dalam

: schedule 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>
Memulakan penjadual:

Tambahkan pekerjaan kron tunggal yang disebutkan di atas ke Crontab Server anda. Penjadual Laravel menguruskan selebihnya.

Soalan Lazim (Soalan Lazim):

(Soalan Lazim asal ditulis dengan baik dan komprehensif; tiada perubahan yang diperlukan.)

Sambutan yang disemak ini mengekalkan maklumat asal sambil meningkatkan kejelasan dan struktur. Contoh kod juga sedikit bertambah baik untuk kebolehbacaan dan amalan terbaik.

Atas ialah kandungan terperinci Cara Menyiapkan Kerja Cron di Aplikasi Laravel Anda. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn