Redis Queue içinde Laravel: Kuyruğa Alma

In Laravel, Redis Queue uzun süren ve zaman alan görevlerin tamamlanmasını beklemeden işlemek için kullanılan güçlü bir araçtır. kullanarak Redis Queue, e-posta gönderme, arka plan görevlerini işleme veya rapor oluşturma gibi görevleri sıralayabilir ve bunları eşzamansız olarak yürüterek uygulama performansını ve kullanıcı deneyimini geliştirebilirsiniz.

Redis Queue Kullanım için Temel Adımlar Laravel

Yapılandır Redis

Öncelikle, Redis. Paketi Composer aracılığıyla Laravel kurduğunuzdan ve dosyadaki bağlantı parametrelerini yapılandırdığınızdan emin olun. Redis Redis .env

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

İşleri Tanımla

Ardından, sıraya koymak istediğiniz işleri tanımlamanız gerekir. Bu işler, uygulamanın ana işleminden bağımsız olarak ve eşzamansız olarak gerçekleştirilecektir.

// 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());  
    }  
}  

İşleri Kuyruğa Alın

Bir işi gerçekleştirmek istediğinizde, dispatch veya dispatchNow işlevlerini kullanarak onu kuyruğa koymanız yeterlidir:

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();  

İşleri Kuyruktan İşle

İş kuyruğa alındıktan sonra, Worker kuyruktaki işleri yürütmek için bir ayarlamanız gerekir. çalıştırmak için Laravel bir ile birlikte gelir: artisan command worker

php artisan queue:work

worker Kuyruktaki işleri sürekli olarak dinleyecek ve yürütecektir. worker İş sayısını ve işleme turları arasındaki bekleme süresini işlemek için yapılandırabilirsiniz .

Kuyruktaki İşleri Yönetin

Laravel kuyruktaki işleri izleyebileceğiniz ve kontrol edebileceğiniz bir yönetim arayüzü sağlar. Bekleyen işlerin sayısını, işlem süresini görüntüleyebilir ve hatta başarısız olan işleri yeniden deneyebilirsiniz.

 

Sonuç Redis Queue in kullanmak, Laravel uygulamanın ana işlemesini kesintiye uğratmadan uzun süren görevleri halletmenin etkili bir yoludur. kullanarak Redis Queue, uygulama performansını iyileştirebilir ve kullanıcı deneyimini geliştirebilirsiniz.