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, तपाइँ अनुप्रयोग प्रदर्शन सुधार गर्न र प्रयोगकर्ता अनुभव बृद्धि गर्न सक्नुहुन्छ।