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, మీరు అప్లికేషన్ పనితీరును మెరుగుపరచవచ్చు మరియు వినియోగదారు అనుభవాన్ని మెరుగుపరచవచ్చు.