Rumah rangka kerja php Laravel Cara menggunakan Laravel untuk melaksanakan tugas berjadual

Cara menggunakan Laravel untuk melaksanakan tugas berjadual

Nov 02, 2023 pm 03:43 PM
laravel tugas yang dijadualkan capai

Cara menggunakan Laravel untuk melaksanakan tugas berjadual

Cara menggunakan Laravel untuk melaksanakan tugas berjadual

Pengenalan:
Apabila membangunkan aplikasi, kadangkala anda perlu melaksanakan beberapa tugas pada masa atau selang waktu tertentu, seperti menjana laporan, menghantar e-mel atau membersihkan cache. Laravel menyediakan fungsi tugas berjadual yang berkuasa yang boleh membantu kami mencapai keperluan ini dengan mudah. Artikel ini akan memperkenalkan cara menggunakan fungsi tugas berjadual dalam Laravel dan memberikan contoh kod khusus.

1. Konfigurasikan tugasan berjadual
Pertama, kita perlu mengkonfigurasi tugas berjadual dalam projek Laravel. Buka terminal atau antara muka baris perintah projek, masukkan direktori akar projek, dan laksanakan arahan berikut:

crontab -e
Salin selepas log masuk

Perintah ini akan membuka fail Crontab, di mana kita boleh menentukan masa pelaksanaan dan arahan pelaksanaan tugas yang dijadualkan.

2. Buat kelas tugasan berjadual
Dalam projek Laravel, tugasan berjadual ditakrifkan sebagai kelas tugasan boleh laku. Kita boleh menggunakan arahan Artisan berikut untuk mencipta kelas tugas berjadual baharu:

php artisan make:command TaskName
Salin selepas log masuk

Antaranya, TaskName ialah nama yang kami berikan kepada tugas berjadual. Selepas melaksanakan arahan di atas, Laravel akan menjana fail kelas arahan baharu TaskName.php dalam direktori app/Console/Commands. app/Console/Commands目录下生成一个新的命令类文件TaskName.php

三、编辑定时任务类
打开TaskName.php文件,我们可以在handle()方法中编写定时任务的具体逻辑。例如,以下代码展示了一个定时任务的示例:

<?php

namespace AppConsoleCommands;

use IlluminateConsoleCommand;

class TaskName extends Command
{
    protected $signature = 'task:name';
    
    protected $description = 'Description of the task';
    
    public function handle()
    {
        // 在这里编写定时任务的具体逻辑
        $this->info('Task executed successfully');
    }
}
Salin selepas log masuk

在上述代码中,我们定义了该定时任务的命令名称和描述。在handle()方法中,我们可以编写具体的定时任务逻辑。在示例中,我们简单地输出一条消息。你可以根据自己的需求进行定时任务逻辑的编写。

四、注册定时任务
我们需要将定时任务注册到Laravel的调度程序(Scheduler)中,使其在特定的时间点触发执行。在app/Console/Kernel.php文件中,我们可以找到schedule()方法。在该方法中,我们可以注册定时任务并定义执行频率和执行时间。以下代码展示了一个定时任务的注册示例:

protected function schedule(Schedule $schedule)
{
    // 每天5点执行一次
    $schedule->command('task:name')->dailyAt('05:00');
    
    // 每月1号的18点执行一次
    $schedule->command('task:name')->monthlyOn(1, '18:00');
    
    // 每分钟执行一次
    $schedule->command('task:name')->everyMinute();
}
Salin selepas log masuk

在上述代码中,我们使用$schedule对象调用了command()方法,并传递了我们之前定义的定时任务的命令名称。然后,我们使用dailyAt()monthlyOn()everyMinute()

3 Edit kelas tugas berjadual

Buka fail TaskName.php Kita boleh menulis logik khusus tugasan yang dijadualkan dalam kaedah handle(). Contohnya, kod berikut menunjukkan contoh tugas berjadual:

php artisan schedule:run
Salin selepas log masuk
Dalam kod di atas, kami mentakrifkan nama arahan dan perihalan tugas yang dijadualkan. Dalam kaedah handle(), kita boleh menulis logik tugas berjadual khusus. Dalam contoh kita hanya mencetak mesej. Anda boleh menulis logik tugas berjadual mengikut keperluan anda sendiri.

4. Daftar tugas berjadual

Kami perlu mendaftarkan tugasan berjadual ke dalam penjadual Laravel (Penjadual) supaya ia mencetuskan pelaksanaan pada masa tertentu. Dalam fail app/Console/Kernel.php, kita boleh menemui kaedah schedule(). Dalam kaedah ini, kita boleh mendaftarkan tugas yang dijadualkan dan menentukan kekerapan pelaksanaan dan masa pelaksanaan. Kod berikut menunjukkan contoh pendaftaran tugas berjadual:
rrreee

Dalam kod di atas, kami menggunakan objek $schedule untuk memanggil kaedah command() dan lulus Nama arahan tugas berjadual yang ditentukan. Kemudian, kami menggunakan kaedah dailyAt(), monthlyOn() dan everyMinute() untuk menentukan kekerapan pelaksanaan dan masa pelaksanaan masing-masing. 🎜🎜5. Simpan dan laksanakan tugas yang dijadualkan🎜Selepas mendaftarkan tugasan yang dijadualkan pada langkah sebelumnya, kita perlu menyimpan dan melaksanakan tugas yang dijadualkan. Dalam terminal atau antara muka baris perintah, gunakan perintah Artisan berikut untuk menyimpan dan melaksanakan tugas yang dijadualkan: 🎜rrreee🎜 Perintah ini akan menyimpan dan melaksanakan tugas berjadual yang kami daftarkan sebelum ini. 🎜🎜Kesimpulan: 🎜Dengan mengkonfigurasi tugas berjadual, mencipta kelas tugas berjadual, mendaftar tugas berjadual dan menyimpan serta melaksanakan tugas berjadual, kami boleh melaksanakan fungsi tugas berjadual dalam Laravel dengan mudah. Fungsi tugas berjadual boleh membantu kami mengautomasikan beberapa tugasan berulang dan meningkatkan kecekapan pembangunan. Saya harap kandungan artikel ini berguna kepada anda! 🎜

Atas ialah kandungan terperinci Cara menggunakan Laravel untuk melaksanakan tugas berjadual. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Akan R.E.P.O. Ada Crossplay?
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Laravel - Perintah Artisan Laravel - Perintah Artisan Aug 27, 2024 am 10:51 AM

Laravel - Perintah Artisan - Laravel 5.7 hadir dengan cara baharu untuk merawat dan menguji arahan baharu. Ia termasuk ciri baharu untuk menguji arahan artisan dan demonstrasi disebut di bawah?

Laravel - Konsol Artisan Laravel - Konsol Artisan Aug 27, 2024 am 10:51 AM

Laravel - Artisan Console - Rangka kerja Laravel menyediakan tiga alat utama untuk interaksi melalui baris arahan iaitu: Artisan, Ticker dan REPL. Bab ini menerangkan tentang Artisan secara terperinci.

Laravel - Penyesuaian Penomboran Laravel - Penyesuaian Penomboran Aug 27, 2024 am 10:51 AM

Laravel - Penyesuaian Penomboran - Laravel termasuk ciri penomboran yang membantu pengguna atau pembangun menyertakan ciri penomboran. Paginator Laravel disepadukan dengan pembina pertanyaan dan ORM Fasih. Kaedah penomboran automatik

Bagaimana untuk mendapatkan kod pengembalian semasa menghantar e -mel gagal di Laravel? Bagaimana untuk mendapatkan kod pengembalian semasa menghantar e -mel gagal di Laravel? Apr 01, 2025 pm 02:45 PM

Kaedah untuk mendapatkan kod kembali apabila menghantar e -mel Laravel gagal. Apabila menggunakan Laravel untuk membangunkan aplikasi, anda sering menghadapi situasi di mana anda perlu menghantar kod pengesahan. Dan pada hakikatnya ...

Tugas Jadual Laravel tidak dilaksanakan: Apa yang harus saya lakukan jika tugas itu tidak berjalan selepas Jadual: Jalankan Perintah? Tugas Jadual Laravel tidak dilaksanakan: Apa yang harus saya lakukan jika tugas itu tidak berjalan selepas Jadual: Jalankan Perintah? Mar 31, 2025 pm 11:24 PM

Tugas Jadual Laravel menjalankan penyelesaian masalah yang tidak responsif semasa menggunakan penjadualan tugas jadual Laravel, banyak pemaju akan menghadapi masalah ini: Jadual: Jalankan ...

Di Laravel, bagaimana menangani situasi di mana kod pengesahan gagal dihantar melalui e -mel? Di Laravel, bagaimana menangani situasi di mana kod pengesahan gagal dihantar melalui e -mel? Mar 31, 2025 pm 11:48 PM

Kaedah mengendalikan kegagalan e -mel Laravel untuk menghantar kod pengesahan adalah menggunakan Laravel ...

Bagaimana untuk melaksanakan fungsi jadual tersuai untuk mengklik untuk menambah data dalam admin dcat? Bagaimana untuk melaksanakan fungsi jadual tersuai untuk mengklik untuk menambah data dalam admin dcat? Apr 01, 2025 am 07:09 AM

Cara melaksanakan fungsi jadual klik tersuai untuk menambah data dalam dcatadmin (laravel-admin) semasa menggunakan dcat ...

Laravel - Pelayan Buang Laravel - Pelayan Buang Aug 27, 2024 am 10:51 AM

Laravel - Dump Server - Laravel dump server datang dengan versi Laravel 5.7. Versi sebelumnya tidak termasuk pelayan dump. Pelayan dump akan menjadi kebergantungan pembangunan dalam fail komposer laravel/laravel.

See all articles