Redis Queue में Laravel: कतारबद्धता को संभालना

में Laravel, Redis Queue एक शक्तिशाली उपकरण है जिसका उपयोग लंबे समय तक चलने वाले और समय लेने वाले कार्यों को उनके पूरा होने की प्रतीक्षा किए बिना संभालने के लिए किया जाता है। का उपयोग करके Redis Queue, आप ईमेल भेजने, पृष्ठभूमि कार्यों को संसाधित करने, या रिपोर्ट तैयार करने जैसे कार्यों को सूचीबद्ध कर सकते हैं, और उन्हें अतुल्यकालिक रूप से निष्पादित कर सकते हैं, एप्लिकेशन प्रदर्शन में सुधार कर सकते हैं और उपयोगकर्ता अनुभव को बढ़ा सकते हैं।

Redis Queue उपयोग करने के लिए बुनियादी कदम Laravel

कॉन्फ़िगर Redis

सबसे पहले, आपको इंस्टॉल और कॉन्फ़िगर करना Redis होगा Laravel । सुनिश्चित करें कि आपने Redis कंपोज़र के माध्यम से पैकेज स्थापित किया है और फ़ाइल Redis में कनेक्शन पैरामीटर कॉन्फ़िगर किए हैं। .env

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

नौकरियाँ परिभाषित करें

इसके बाद, आपको उन नौकरियों को परिभाषित करना होगा जिन्हें आप कतार में रखना चाहते हैं। ये कार्य एप्लिकेशन की मुख्य प्रोसेसिंग से अतुल्यकालिक और स्वतंत्र रूप से निष्पादित किए जाएंगे।

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

नौकरियों को कतार में रखें

dispatch जब आप कोई कार्य करना चाहते हैं, तो आप बस इसे या फ़ंक्शंस का उपयोग करके कतार में डाल देते हैं 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();  

कतार से कार्य प्रक्रिया करें

कार्य को कतार में डालने के बाद, आपको Worker कतार में कार्यों को निष्पादित करने के लिए एक सेट अप करना होगा। चलाने के लिए Laravel एक के साथ आता है: artisan command worker

php artisan queue:work

worker कतार में कार्यों को लगातार सुनेगा और निष्पादित करेगा । आप worker प्रसंस्करण राउंड के बीच नौकरियों की संख्या और प्रतीक्षा समय को संभालने के लिए कॉन्फ़िगर कर सकते हैं।

कतार में नौकरियाँ प्रबंधित करें

Laravel एक प्रबंधन इंटरफ़ेस प्रदान करता है जहां आप कतार में नौकरियों की निगरानी और नियंत्रण कर सकते हैं। आप लंबित कार्यों की संख्या, प्रसंस्करण समय और यहां तक ​​कि विफल कार्यों का पुनः प्रयास भी देख सकते हैं।

 

निष्कर्ष एप्लिकेशन की मुख्य प्रोसेसिंग को बाधित किए बिना लंबे समय तक चलने वाले कार्यों को संभालने के लिए Redis Queue इन का उपयोग करना एक प्रभावी तरीका है। Laravel का उपयोग करके Redis Queue, आप एप्लिकेशन के प्रदर्शन में सुधार कर सकते हैं और उपयोगकर्ता अनुभव को बढ़ा सकते हैं।