Redis Queue in Laravel: Handling Queuing

In Laravel, Redis Queue არის მძლავრი ინსტრუმენტი, რომელიც გამოიყენება გრძელვადიანი და შრომატევადი ამოცანების შესასრულებლად მათი დასრულების მოლოდინის გარეშე. გამოყენებით Redis Queue, თქვენ შეგიძლიათ დაალაგოთ ისეთი ამოცანები, როგორიცაა ელ.ფოსტის გაგზავნა, ფონური ამოცანების დამუშავება ან ანგარიშების გენერირება და მათი ასინქრონულად შესრულება, აპლიკაციის მუშაობის გაუმჯობესება და მომხმარებლის გამოცდილების გაუმჯობესება.

Redis Queue გამოყენების ძირითადი ნაბიჯები Laravel

კონფიგურაცია Redis

პირველ რიგში, თქვენ უნდა დააინსტალიროთ და Redis დააკონფიგურიროთ Laravel. დარწმუნდით, რომ დააინსტალირეთ Redis პაკეტი Composer-ის მეშვეობით და დააკონფიგურირეთ 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();  

დაამუშავეთ სამუშაოები რიგიდან

მას შემდეგ, რაც დავალება რიგზე იქნება მოთავსებული, თქვენ უნდა დააყენოთ a, Worker რათა შეასრულოს სამუშაოები რიგში. Laravel მოყვება artisan command გასაშვებად worker:

php artisan queue:work

მუდმივად მოუსმენს worker და შეასრულებს სამუშაოებს რიგში. შეგიძლიათ დააკონფიგურიროთ worker სამუშაოების რაოდენობა და ლოდინის დრო დამუშავების რაუნდებს შორის.

მართეთ ვაკანსიები რიგში

Laravel უზრუნველყოფს მართვის ინტერფეისს, სადაც შეგიძლიათ აკონტროლოთ და აკონტროლოთ სამუშაოები რიგში. შეგიძლიათ იხილოთ მომლოდინე სამუშაოების რაოდენობა, დამუშავების დრო და კიდევ ხელახლა სცადოთ წარუმატებელი სამუშაოები.

 

დასკვნა Redis Queue In-ის გამოყენება Laravel არის ეფექტური გზა გრძელვადიანი ამოცანების შესასრულებლად აპლიკაციის ძირითადი დამუშავების შეფერხების გარეშე. გამოყენებით Redis Queue შეგიძლიათ გააუმჯობესოთ აპლიკაციის შესრულება და გააუმჯობესოთ მომხმარებლის გამოცდილება.