Rumah  >  Artikel  >  rangka kerja php  >  Bagaimana untuk melaksanakan tugas berjadual dalam laravel

Bagaimana untuk melaksanakan tugas berjadual dalam laravel

PHPz
PHPzasal
2023-04-14 09:16:443784semak imbas

Laravel ialah rangka kerja PHP popular yang menyediakan pelbagai alatan dan fungsi, salah satunya adalah tugas berjadual. Dalam artikel ini, kita akan belajar cara melaksanakan tugas yang dijadualkan dalam Laravel.

Pertama sekali, Laravel menyediakan alat yang dipanggil "penjadual" yang membolehkan kami mentakrif dan melaksanakan tugas yang dijadualkan dengan mudah. Dalam Laravel, penjadual menggunakan perkhidmatan cron sistem pengendalian, jadi anda perlu memastikan bahawa perkhidmatan cron telah dimulakan pada pelayan sasaran.

Seterusnya, kami akan menerangkan langkah demi langkah cara melaksanakan tugas berjadual dalam Laravel:

Langkah pertama ialah mencipta kelas tugas berjadual

Dalam Laravel, kita boleh mewarisi Kelas IlluminateConsoleSchedulingSchedule untuk mencipta kelas tugas berjadual tersuai. Kelas ini mesti mengandungi kaedah bernama "handle" untuk menentukan logik pelaksanaan tugas yang dijadualkan. Sebagai contoh, kami mencipta kelas tugas bernama "SendEmail" dengan kod berikut:

<?php

namespace App\Console\Commands;

use Illuminate\Console\Command;

class SendEmail extends Command
{
    protected $signature = &#39;email:send&#39;;

    protected $description = &#39;Send an email to users&#39;;

    public function handle()
    {
        // 定时任务执行的逻辑
    }
}

Dalam contoh di atas, kami mentakrifkan kelas bernama "SendEmail", yang mewarisi daripada kelas Perintah Laravel . Dalam kelas ini, kami mentakrifkan arahan "email:send" yang mencetuskan tugasan dan penerangan tugasan yang dipaparkan apabila arahan "php artisan list" dijalankan.

Langkah kedua ialah mendaftar tugas berjadual

Dalam Laravel, kita boleh menggunakan fail Kernel.php untuk mendaftar semua tugasan yang dijadualkan. Fail ini terletak dalam direktori "app/Console". Dalam fail ini, kita boleh menggunakan kaedah "jadual" untuk menentukan semua tugas. Sebagai contoh, kami ingin melaksanakan tugas SendEmail yang baru kami buat setiap minit Kodnya adalah seperti berikut:

protected function schedule(Schedule $schedule)
{
    $schedule->command('email:send')->everyMinute();
}

Dalam contoh di atas, kami menggunakan kaedah "everyMinute" untuk mentakrifkan tugas SendEmail. dilaksanakan setiap minit.

Langkah ketiga, mulakan tugas yang dijadualkan

Dalam Laravel, kita boleh memulakan penjadual dengan menjalankan arahan berikut:

* * * * * cd /path-to-your-project && php artisan schedule:run >> /dev/null 2>&1

Kemudian, kita perlu menggantikan arahan di atas Tambahkan pada jadual cron untuk memastikan penjadual berjalan dalam masa yang ditetapkan. Sebagai contoh, jika kita menetapkan tugas SendEmail untuk dilaksanakan setiap minit, maka kita perlu menambah arahan berikut dalam jadual cron:

* * * * * cd /path-to-your-project && php artisan schedule:run >> /dev/null 2>&1

Dalam contoh di atas, " *" bermaksud dilaksanakan sekali setiap minit.

Kini, kami telah berjaya melaksanakan tugas berjadual dalam Laravel. Sama ada dalam persekitaran pengeluaran atau persekitaran pembangunan, fungsi tugas berjadual Laravel boleh membantu kami mengautomasikan beberapa tugas, menjimatkan masa dan tenaga kami.

Atas ialah kandungan terperinci Bagaimana untuk melaksanakan tugas berjadual dalam laravel. 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