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.