Rumah >rangka kerja php >Laravel >Cara menggunakan penjadualan tugas dalam aplikasi Laravel
Laravel ialah rangka kerja PHP popular yang menyediakan banyak komponen dan alatan yang tersedia, termasuk penjadualan tugas. Dalam artikel ini, kita akan melihat cara menggunakan penjadualan tugas dalam aplikasi Laravel.
Apakah itu penjadualan tugas?
Penjadualan tugas merujuk kepada teknologi melaksanakan beberapa tugasan tertentu mengikut rancangan. Contohnya, sandarkan pangkalan data anda setiap jam atau hantar laporan setiap hari. Dalam Laravel, penjadualan tugas adalah serupa dengan Tab Cron, tetapi lebih mudah untuk dilaksanakan dan diurus.
Penjadual tugas dalam Laravel menggunakan alatan baris arahan Artisan untuk mengurus penjadualan, termasuk soket CRON dan Powershell.
Mari lihat cara melaksanakan penjadualan tugas dalam Laravel.
Langkah pertama - buat tugasan
Mencipta tugasan ialah langkah pertama untuk melaksanakan penjadualan tugas. Tugasan penjadualan dalam Laravel dibentangkan dalam bentuk kelas. Menukar tugas ke dalam kelas membolehkan pengurusan dan ujian yang lebih baik dengan mentakrifkan logik yang akan dilaksanakan. Mari kita buat contoh tugasan TutorialTask
:
<?php namespace App\Jobs; use Illuminate\Bus\Queueable; use Illuminate\Contracts\Queue\ShouldQueue; use Illuminate\Foundation\Bus\Dispatchable; use Illuminate\Queue\InteractsWithQueue; use Illuminate\Queue\SerializesModels; class TutorialTask implements ShouldQueue { use Dispatchable, InteractsWithQueue, Queueable, SerializesModels; /** * Execute the job. * * @return void */ public function handle() { // Your logic to execute every minute. \Log::info('Task executed at '.now()); } }
Logik tugas ini sangat mudah, merekodkan satu mesej ke log setiap minit. Sekarang, kami telah mencipta tugasan, tetapi ia tidak akan dilaksanakan secara automatik. Kita perlu menyediakan jadual untuknya.
Langkah 2 - Sediakan jadual dalam konsol
Laravel menyediakan banyak kaedah untuk menambah tugasan pada jadual. Di sini kami menggunakan kaedah schedule
untuk menetapkan jadual dalam konsol. Kaedah
$schedule->job(new TutorialTask)->everyMinute();
everyMinute
menunjukkan bahawa tugasan ini akan dilaksanakan setiap minit. Anda boleh menggunakan kaedah pratakrif lain seperti setiap jam (hourly
), harian (daily
), bulanan (monthly
) atau mingguan (weekly
).
Sebagai alternatif, anda boleh mentakrifkan peraturan frekuensi kami sendiri:
$schedule->job(new TutorialTask)->everyFiveMinutes();
Peraturan ini menentukan bahawa tugasan harus dijalankan setiap lima minit.
Langkah 3 - Mulakan penjadual tugas
Sekarang kita telah menyediakan jadual untuk tugas itu, kita perlu memulakan penjadual tugas. Kita boleh menjalankan penjadual pada pelayan, atau menggunakan penjadual Laravel sendiri, yang dijalankan dengan menyediakan Tab Cron.
Jalankan arahan berikut dalam konsol:
* * * * * cd /path-to-your-project && php artisan schedule:run >> /dev/null 2>&1
Arahan ini akan menjalankan penjadual Laravel setiap minit. Anda perlu menggantikan /path-to-your-project
dengan laluan ke aplikasi Laravel anda. >> /dev/null
mengarahkan semua output untuk dimajukan ke /dev/null
.
Langkah akhir - mulakan baris gilir (jika perlu)
Jika aplikasi anda menggunakan baris gilir, anda perlu mendayakan penjadual baris gilir. Laravel menggunakan pemacu bahagian belakang seperti Redis atau Beanstalkd untuk mengendalikan tugas baris gilir. Anda perlu mengikuti langkah ini untuk mendayakan penjadual baris gilir:
Tentukan .env
dalam fail QUEUE_DRIVER
:
QUEUE_DRIVER=redis
Sediakan sambungan baris gilir dalam config/queue.php
:
'default' => env('QUEUE_DRIVER', 'redis'), 'connections' => [ ..... 'redis' => [ 'driver' => 'redis', 'connection' => 'your-default-redis-connection', 'queue' => env('REDIS_QUEUE', 'default'), 'retry_after' => 90, ], ..... ]
Ubah suai fail .env
untuk menentukan sambungan baris gilir:
REDIS_HOST=127.0.0.1 REDIS_PASSWORD=null REDIS_PORT=6379 REDIS_QUEUE=default
Sekarang mulakan penjadual baris gilir:
php artisan queue:work redis --daemon
Arahan ini akan memulakan penjadual baris gilir dan mula melaksanakan tugas.
Kesimpulan:
Ciri penjadualan tugas dalam Laravel membolehkan anda melaksanakan arahan, melaksanakan program atau menghantar e-mel atas permintaan. Dengan mencipta tugas berjadual dan menambahkannya pada senarai tugas, anda boleh mengurus dan melaksanakan tugas dengan mudah. Semasa proses ini, ingat untuk menghidupkan penjadual atau penjadual baris gilir supaya tugasan berjalan pada masa yang dijadualkan atau dalam baris gilir keutamaan. Semoga berjaya menggunakan penjadual tugas Laravel untuk meningkatkan prestasi dan responsif aplikasi anda.
Atas ialah kandungan terperinci Cara menggunakan penjadualan tugas dalam aplikasi Laravel. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!