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 in वापरणे. Laravel वापरून Redis Queue, तुम्ही अनुप्रयोग कार्यप्रदर्शन सुधारू शकता आणि वापरकर्ता अनुभव वाढवू शकता.