Rumah >rangka kerja php >Laravel >Bagaimana untuk melaksanakan fungsi panggilan kaedah berjadual dalam laravel

Bagaimana untuk melaksanakan fungsi panggilan kaedah berjadual dalam laravel

PHPz
PHPzasal
2023-04-03 18:53:19715semak imbas

Laravel ialah rangka kerja pembangunan web PHP yang popular yang menyediakan banyak ciri dan alatan yang mudah untuk membangunkan aplikasi web dengan cepat. Laravel juga mempunyai fungsi penjadualan tugas, yang membolehkan pembangun mengautomasikan beberapa tugas berkala Fungsi ini dipanggil "Penjadualan Tugas", iaitu penjadualan tugas.

Penjadualan Tugasan menyediakan cara yang mudah tetapi berkuasa untuk mengurus tugasan yang dijalankan secara berkala dalam Laravel. Laravel menyediakan penjadual yang secara automatik boleh memanggil kaedah PHP yang ditentukan mengikut masa yang telah ditetapkan Kaedah ini boleh menjadi kaedah memanggil pengawal atau melaksanakan perintah Artisan. Ini membolehkan pembangun menjadualkan tugas dengan mudah tanpa perlu risau tentang bila tugas dilaksanakan atau sama ada tugas itu dilaksanakan mengikut bilangan kali yang betul.

Fungsi Penjadualan Tugasan Laravel sangat mudah digunakan Anda hanya perlu mentakrifkan tugasan yang perlu dijalankan dalam kaedah jadual kelas Kernel. Berikut ialah contoh mudah:

// app/Console/Kernel.php

protected function schedule(Schedule $schedule)
{
    $schedule->call(function () {
        // 这是要运行的任务逻辑
    })->dailyAt('02:00');
}

Dalam kod di atas, penjadual tugas akan menjalankan fungsi tanpa nama pada pukul 2 pagi setiap hari. Dalam fungsi tanpa nama ini, anda boleh menulis logik tugas yang perlu anda jalankan, dan sudah tentu anda juga boleh memanggil kaedah pengawal, arahan Artisan, dsb.

Selain kaedah dailyAt, Laravel juga menyediakan banyak kaedah penjadualan lain, seperti setiap jam, dua kaliSehari, mingguan, bulanan, dll. Kaedah ini membolehkan anda menetapkan kekerapan pelaksanaan tugas dengan lebih tepat.

Pada masa yang sama, Penjadualan Tugasan Laravel juga menyokong penjadualan berdasarkan ungkapan Cron, yang bermaksud anda boleh mempunyai kawalan yang lebih terperinci ke atas masa pelaksanaan khusus penjadual tugas. Berikut ialah contoh penggunaan Cron untuk menjadualkan tugas:

// app/Console/Kernel.php

protected function schedule(Schedule $schedule)
{
    $schedule->command('my:task')
             ->cron('* * * * *');
}

Dalam kod di atas, kami menggunakan kaedah cron untuk menentukan masa pelaksanaan tugas. Format ungkapan Cron ialah:

*    *    *    *    *    *
-    -    -    -    -    -
|    |    |    |    |    |
|    |    |    |    |    +----- day of the week (0 - 6) (Sunday=0)
|    |    |    |    +---------- month (1 - 12)
|    |    |    +--------------- day of the month (1 - 31)
|    |    +-------------------- hour (0 - 23)
|    +------------------------- minute (0 - 59)
+------------------------------ second (0 - 59) [可选]

Dalam contoh ini, kami menetapkan tugasan untuk dilaksanakan sekali setiap minit. Dalam situasi sebenar, anda perlu menetapkan ungkapan Cron mengikut keperluan sebenar.

Selain mentakrifkan tugas berjadual dalam kelas Kernel, anda juga boleh menjadualkan tugas berjadual dalam mana-mana kelas dengan memanggil kelas Penjadual Laravel. Berikut ialah contoh memanggil tugas berjadual dalam pengawal:

// app/Http/Controllers/MyController.php

use Illuminate\Console\Scheduling\Schedule;

class MyController extends Controller
{
    public function index(Schedule $schedule)
    {
        $schedule->call(function () {
            // 这里是定时调用的任务逻辑
        })->weekly();
    }
}

Dalam kod di atas, kami meletakkan logik penjadualan dalam kaedah indeks kelas MyController dan mendapatkannya melalui suntikan kebergantungan kepada Penjadual contoh. Kesan contoh ini adalah sama seperti kaedah penjadualan tugas dalam kelas Kernel.

Secara amnya, fungsi Penjadualan Tugasan Laravel menyediakan fungsi yang sangat mudah dan berkuasa untuk kaedah panggilan yang kerap, melalui konfigurasi mudah, ia dapat merealisasikan banyak tugas berkala, yang menjadikan pembangun lebih mampu untuk melaksanakan logik perniagaan tanpa perlu risau tentang butiran pelaksanaan penjadualan tugas.

Atas ialah kandungan terperinci Bagaimana untuk melaksanakan fungsi panggilan kaedah 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