Rumah  >  Artikel  >  rangka kerja php  >  Pembangunan Laravel: Bagaimana untuk menggunakan Laravel Job Queues untuk melaksanakan tugas tak segerak?

Pembangunan Laravel: Bagaimana untuk menggunakan Laravel Job Queues untuk melaksanakan tugas tak segerak?

PHPz
PHPzasal
2023-06-13 19:12:581980semak imbas

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.

  1. Cara Laravel Job Queues berfungsi

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.

  1. Cara menggunakan Laravel Job Queues

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.

  1. Ringkasan

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!

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