Pembangunan Laravel: Bagaimana untuk menggunakan Laravel Job Queues untuk melaksanakan tugas tak segerak?
Dalam pembangunan aplikasi web, kita selalunya perlu melakukan beberapa tugasan respons yang memakan masa dan tidak serta-merta. Tugas-tugas ini akan menduduki sumber pelayan, malah menyekat permintaan pengguna lain, dan sangat mempengaruhi pengalaman pengguna. Laravel Job Queues menyediakan penyelesaian yang boleh menukar tugas yang memakan masa ini kepada tugas tak segerak dan memprosesnya menggunakan baris gilir. Artikel ini akan memperkenalkan prinsip kerja dan penggunaan Laravel Job Queues untuk membantu anda mengendalikan tugas tak segerak dengan lebih baik.
Dalam Laravel, Job Queues ialah mekanisme pemprosesan tugas tak segerak. Apabila tugasan yang memakan masa perlu diproses, Laravel akan merangkum tugasan ini ke dalam kelas tugas (Kelas Kerja) dan menambahkannya pada baris gilir (Baris gilir). Baris gilir boleh disimpan menggunakan pelbagai pemacu, seperti Redis, Pangkalan Data dan Beanstalkd. Kemudian, Laravel akan memulakan pemproses baris gilir (Proses Pekerja), yang akan mengalih keluar tugas daripada baris gilir dan melaksanakannya secara bebas di latar belakang. Apabila tugasan selesai, pemproses menyimpan hasil tugasan di lokasi tertentu untuk digunakan oleh aplikasi utama.
Seterusnya, kami akan menggunakan contoh mudah untuk menunjukkan cara menggunakan Laravel Job Queues untuk melaksanakan tugas tak segerak.
Langkah 1: Pasang Laravel
Mula-mula, anda perlu memasang Laravel dan pemandu gilir. Anda boleh menggunakan komposer untuk memasangnya. Masukkan arahan berikut dalam terminal:
composer create-project laravel/laravel job-queues
Langkah 2: Konfigurasikan pemandu gilir
Kami akan menggunakan Redis sebagai pemandu gilir. Sila pasang Redis dahulu, dan kemudian konfigurasikan kandungan berikut dalam fail .env:
QUEUE_DRIVER=redis REDIS_HOST=localhost REDIS_PASSWORD=null REDIS_PORT=6379
Langkah 3: Buat kelas tugas
Kita perlu mencipta kelas tugas (Kelas Kerja). Kelas ini akan mengandungi logik tugasan dan mentakrifkan cara mengendalikan tugasan tersebut. Sebagai contoh, dalam contoh kami, kami akan mensimulasikan penghantaran e-mel dan melaksanakannya secara tidak segerak di latar belakang.
Jalankan arahan berikut dalam terminal:
php artisan make:job SendEmail
Kemudian, buka direktori app/Jobs dan edit fail SendEmail.php. Anda perlu melaksanakan kaedah fire() dan letakkan kod yang perlu dilaksanakan secara tak segerak di dalamnya. Dalam contoh kami, kami mensimulasikan penghantaran e-mel:
public function handle() { $email = new stdClass(); $email->to = 'example@example.com'; $email->subject = 'Sending email from Laravel'; $email->body = 'This is a test email sent from Laravel Job Queues.'; // send email }
Langkah 4: Tambahkan tugasan pada baris gilir
Sekarang, kami perlu menambah tugasan pada baris gilir dalam aplikasi kami. Kita boleh menambah tugasan terus ke baris gilir menggunakan kaedah push() baris gilir:
$job = (new SendEmail())->onQueue('emails'); dispatch($job);
Dalam contoh ini, kami menambah tugasan pada baris gilir 'e-mel'. Sila ambil perhatian bahawa kami menggunakan fungsi dispatch() untuk menambah tugasan pada baris gilir. Fungsi ini kembali serta-merta selepas menambah tugasan pada baris gilir.
Langkah 5: Mulakan Pemproses Giliran
Langkah terakhir ialah untuk memulakan Pemproses Giliran supaya tugasan diambil daripada baris gilir dan dilaksanakan secara tidak segerak di latar belakang. Anda boleh menggunakan arahan berikut:
php artisan queue:work --queue=emails
Dalam contoh ini, kami memulakan pemproses baris gilir dan menyediakan baris gilir 'e-mel'. Pemproses ini akan berjalan sehingga anda menghentikannya secara manual.
Laravel Job Queues ialah mekanisme pemprosesan tugas tak segerak yang berkuasa yang boleh membantu anda mengoptimumkan prestasi aplikasi dan meningkatkan pengalaman pengguna. Dalam artikel ini, kami mempelajari cara Laravel Job Queues berfungsi dan cara menggunakannya serta menunjukkan cara menggunakannya dengan contoh. Harap artikel ini membantu anda memahami Laravel dengan lebih baik.
Atas ialah kandungan terperinci Pembangunan Laravel: Bagaimana untuk menggunakan Laravel Job Queues untuk melaksanakan tugas tak segerak?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!