Laravel ialah rangka kerja PHP yang sangat popular yang popular kerana kesederhanaan, kemudahan penggunaan dan ciri yang berkuasa. Dalam Laravel, baris gilir ialah fungsi yang sangat berguna yang boleh membantu pembangun menyelesaikan masalah seperti konkurensi yang tinggi dan volum data yang besar. Dalam artikel ini, kami akan meneroka beberapa asas baris gilir Laravel dan cara menggunakannya.
1. Apakah itu Laravel Queue
Laravel Queue ialah alat untuk memproses tugasan tak segerak dan kemudian memproses tugasan ini secara tidak segerak di latar belakang tanpa menjejaskan permintaan semasa. masa tindak balas. Baris gilir boleh digunakan untuk mengendalikan pelbagai tugas, seperti menghantar e-mel, memproses imej, menjana PDF, dsb.
Prinsip kerja baris gilir adalah sangat mudah: tugasan mula-mula dimasukkan ke dalam baris gilir, dan kemudian proses latar belakang melaksanakan tugasan ini secara tidak segerak. Barisan gilir dalam Laravel menyokong berbilang pemacu baris gilir, seperti Redis, RabbitMQ, Beanstalkd, dsb. Pembangun boleh memilih pemacu baris gilir yang sesuai dengan keperluan mereka.
2. Cara menggunakan Laravel Queue
Menggunakan Laravel Queue adalah sangat mudah, cuma ikuti langkah berikut:
Mengkonfigurasi pemacu gilir dalam Laravel adalah sangat mudah Anda hanya perlu membuka fail config/queue.php dan mengkonfigurasi pemacu gilir yang sepadan. Sebagai contoh, menggunakan Redis sebagai pemacu baris gilir, anda boleh mengkonfigurasinya seperti ini:
'connections' => [ 'redis' => [ 'driver' => 'redis', 'connection' => 'default', 'queue' => 'default', 'retry_after' => 90, 'block_for' => null, ], ],
Mencipta kelas untuk memproses tugas adalah sangat mudah, anda hanya perlu menentukan kaedah pemegang Itu sahaja. Sebagai contoh, kami mencipta kelas tugas untuk menghantar e-mel:
<?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; use Illuminate\Support\Facades\Mail; class SendEmail implements ShouldQueue { use Dispatchable, InteractsWithQueue, Queueable, SerializesModels; protected $user; /** * Create a new job instance. * * @param $user */ public function __construct($user) { $this->user = $user; } /** * Execute the job. * * @return void */ public function handle() { Mail::to($this->user->email)->send(new Welcome($this->user)); } }
Menambah tugasan pada baris gilir adalah sangat mudah, cuma gunakan kaedah penghantaran. Sebagai contoh, kita boleh menggunakannya seperti ini dalam Pengawal:
use App\Jobs\SendEmail; public function index() { $user = auth()->user(); SendEmail::dispatch($user); return view('welcome'); }
Selepas tugasan ditambahkan pada baris gilir, anda akhirnya perlu untuk memulakan proses beratur. Terdapat banyak cara untuk memulakan proses baris gilir Anda boleh menggunakan arahan Artisan Laravel sendiri, atau anda boleh menggunakan alat pihak ketiga seperti penyelia. Contohnya, kami menggunakan perintah Artisan untuk memulakan proses baris gilir:
php artisan queue:work --tries=3 --timeout=30
Selepas langkah di atas, kami boleh menggunakan baris gilir Laravel untuk memproses tugas tak segerak.
3. Fungsi baris gilir Laravel yang biasa digunakan
Terdapat banyak fungsi lain yang berguna dalam baris gilir Laravel, seperti:
Apabila pelaksanaan tugas gagal, jadual failed_jobs pada baris gilir boleh digunakan untuk merekodkan tugasan yang gagal. Pada masa yang sama, kami juga boleh menetapkan bilangan percubaan tugasan dan tamat masa untuk mengelakkan tugasan daripada sentiasa gagal.
Baris gilir Laravel menyokong tugas pemprosesan serentak Pelbagai proses boleh dimulakan pada baris arahan untuk memproses tugas pada masa yang sama, meningkatkan kecekapan pemprosesan tugas.
Melalui Laravel Horizon, alat pihak ketiga, anda boleh memantau dengan mudah status tugas, panjang giliran dan maklumat lain, supaya kami boleh mencari dan menangani masalah dalam masa.
Jika anda perlu mengumpulkan tugasan, anda boleh menambah tugasan pada baris gilir yang ditentukan. Sebagai contoh, kami menambah tugas SendEmail di atas pada baris gilir mel:
SendEmail::dispatch($user)->onQueue('mail');
Apabila memulakan proses baris gilir, anda boleh menentukan baris gilir mana yang hendak diproses:
php artisan queue:work --queue=mail
Di atas adalah beberapa pengetahuan asas baris gilir Laravel dan cara menggunakannya. Apabila Laravel terus berkembang, baris gilir akan menjadi lebih dan lebih berkuasa. Saya percaya bahawa dengan mengkaji artikel ini, semua orang akan mempunyai pemahaman yang lebih mendalam tentang penggunaan baris gilir Laravel dan boleh mengaplikasikannya dengan lebih baik pada pembangunan sebenar.
Atas ialah kandungan terperinci Cara menggunakan baris gilir laravel. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!