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.