Redis Queue julkaisussa Laravel: Handling Queuing

In Laravel, Redis Queue on tehokas työkalu, jota käytetään pitkäkestoisten ja aikaa vievien tehtävien hoitamiseen odottamatta niiden valmistumista. Käyttämällä Redis Queue:tä voit asettaa jonoon tehtäviä, kuten sähköpostien lähettämisen, taustatehtävien käsittelyn tai raporttien luomisen, ja suorittaa ne asynkronisesti, mikä parantaa sovelluksen suorituskykyä ja käyttökokemusta.

Redis Queue Käytön perusvaiheet Laravel

Määritä Redis

Ensinnäkin sinun on asennettava ja Redis määritettävä Laravel. Varmista, että olet asentanut Redis paketin Composerin kautta ja määrittänyt Redis tiedoston yhteysparametrit .env.

CACHE_DRIVER=redis  
REDIS_HOST=127.0.0.1  
REDIS_PASSWORD=null  
REDIS_PORT=6379  

Määrittele työpaikat

Seuraavaksi sinun on määritettävä työt, jotka haluat laittaa jonoon. Nämä työt suoritetaan asynkronisesti ja hakemuksen pääkäsittelystä riippumatta.

// 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());  
    }  
}  

Laita työt jonoon

Kun haluat suorittaa työn, aseta se jonoon käyttämällä dispatch tai dispatchNow -toimintoja:

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();  

Käsittele työt jonosta

Kun työ on asetettu jonoon, sinun on määritettävä a Worker suorittamaan jonossa olevat työt. Laravel mukana tulee artisan command suorittamaan worker:

php artisan queue:work

Kuuntelee worker ja suorittaa jatkuvasti jonossa olevia töitä. Voit määrittää worker käsittelemään töiden määrää ja käsittelykierrosten välisen odotusajan.

Hallitse jonossa olevia töitä

Laravel tarjoaa hallintaliittymän, jossa voit seurata ja hallita jonossa olevia töitä. Voit tarkastella odottavien töiden määrää, käsittelyaikaa ja jopa yrittää uudelleen epäonnistuneita töitä.

 

Johtopäätös Redis Queue Sisään käyttäminen Laravel on tehokas tapa käsitellä pitkäkestoisia tehtäviä häiritsemättä sovelluksen pääkäsittelyä. Käyttämällä Redis Queue, voit parantaa sovelluksen suorituskykyä ja parantaa käyttökokemusta.