Redis Queue dalam Laravel: Mengendalikan Beratur

In Laravel, Redis Queue ialah alat berkuasa yang digunakan untuk mengendalikan tugasan yang berjalan lama dan memakan masa tanpa menunggu selesai. Dengan menggunakan Redis Queue, anda boleh memasukkan tugasan seperti menghantar e-mel, memproses tugas latar belakang atau menjana laporan dan melaksanakannya secara tidak segerak, meningkatkan prestasi aplikasi dan meningkatkan pengalaman pengguna.

Langkah Asas untuk Digunakan Redis Queue dalam Laravel

Konfigurasikan Redis

Pertama, anda perlu memasang dan mengkonfigurasi Redis dalam Laravel. Pastikan anda telah memasang Redis pakej melalui Composer dan mengkonfigurasikan Redis parameter sambungan dalam .env fail.

CACHE_DRIVER=redis  
REDIS_HOST=127.0.0.1  
REDIS_PASSWORD=null  
REDIS_PORT=6379  

Tentukan Pekerjaan

Seterusnya, anda perlu menentukan kerja yang anda ingin letakkan dalam baris gilir. Kerja-kerja ini akan dilakukan secara tak segerak dan bebas daripada pemprosesan utama permohonan.

// Example defining a job to send an email  
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 SendEmailJob implements ShouldQueue  
{  
    use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;  
  
    protected $user;  
  
    public function __construct($user)  
    {  
        $this->user = $user;  
    }  
  
    public function handle()  
    {  
        // Handle sending an email to the user  
        Mail::to($this->user->email)->send(new WelcomeEmail());  
    }  
}  

Letakkan Pekerjaan ke dalam Baris Gilir

Apabila anda ingin melaksanakan kerja, anda hanya memasukkannya ke dalam baris gilir menggunakan fungsi dispatch atau dispatchNow:

use App\Jobs\SendEmailJob;  
use Illuminate\Support\Facades\Queue;  
  
// Put the job into the queue and perform asynchronously  
Queue::push(new SendEmailJob($user));  
  
// Put the job into the queue and perform synchronously(without waiting)  
Queue::push(new SendEmailJob($user))->dispatchNow();  

Memproses Pekerjaan daripada Baris Gilir

Selepas kerja dimasukkan ke dalam baris gilir, anda perlu menyediakan a Worker untuk melaksanakan kerja dalam baris gilir. Laravel datang dengan artisan command untuk menjalankan worker:

php artisan queue:work

Pihak worker akan terus mendengar dan melaksanakan kerja dalam baris gilir. Anda boleh mengkonfigurasi worker untuk mengendalikan bilangan kerja dan masa menunggu antara pusingan pemprosesan.

Urus Pekerjaan dalam Baris Gilir

Laravel menyediakan antara muka pengurusan di mana anda boleh memantau dan mengawal kerja dalam baris gilir. Anda boleh melihat bilangan kerja yang belum selesai, masa pemprosesan, dan juga mencuba semula kerja yang gagal.

 

Kesimpulan Menggunakan Redis Queue dalam Laravel adalah cara yang cekap untuk mengendalikan tugasan yang berjalan lama tanpa mengganggu pemprosesan utama aplikasi. Dengan menggunakan Redis Queue, anda boleh meningkatkan prestasi aplikasi dan meningkatkan pengalaman pengguna.