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 ، آپ ایپلیکیشن کی کارکردگی کو بہتر بنا سکتے ہیں اور صارف کے تجربے کو بڑھا سکتے ہیں۔