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.