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 შეგიძლიათ გააუმჯობესოთ აპლიკაციის შესრულება და გააუმჯობესოთ მომხმარებლის გამოცდილება.