Redis Queue fi Laravel: Immaniġġjar tal-Kju

Fi Laravel, Redis Queue hija għodda qawwija użata biex timmaniġġja ħidmiet fit-tul u li jieħdu ħafna ħin mingħajr ma tistenna li jitlestew. Billi tuża Redis Queue, tista' tpoġġi kompiti bħal li tibgħat emails, tipproċessa kompiti fl-isfond, jew tiġġenera rapporti, u tesegwixxihom b'mod asinkroniku, ittejjeb il-prestazzjoni tal-applikazzjoni u ttejjeb l-esperjenza tal-utent.

Passi Bażiċi għall-Użu Redis Queue fi Laravel

Ikkonfigura Redis

L-ewwelnett, għandek bżonn tinstalla u tikkonfigura Redis fi Laravel. Kun żgur li installajt il- Redis pakkett permezz tal-Kompożitur u kkonfigurajt il- Redis parametri tal-konnessjoni fil- .env fajl.

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

Iddefinixxi l-Impjiegi

Sussegwentement, trid tiddefinixxi l-impjiegi li trid tpoġġi fil-kju. Dawn l-impjiegi se jitwettqu b'mod asinkroniku u indipendentement mill-ipproċessar ewlieni tal-applikazzjoni.

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

Poġġi l-Impjiegi fil-Kju

Meta trid twettaq xogħol, sempliċement poġġih fil-kju billi tuża l- funzjonijiet dispatch jew 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();  

Ipproċessa l-Impjiegi mill-Kju

Wara li l-impjieg ikun tpoġġa fil-kju, għandek bżonn twaqqaf a Worker biex tesegwixxi l-impjiegi fil-kju. Laravel jiġi ma' artisan command biex imexxi worker:

php artisan queue:work

Il worker kontinwament jisma u jesegwixxi l-impjiegi fil-kju. Tista 'tikkonfigura worker biex timmaniġġja n-numru ta' impjiegi u l-ħin ta 'stennija bejn rawnds ta' pproċessar.

Immaniġġja l-Impjiegi fil-Kju

Laravel jipprovdi interface ta 'ġestjoni fejn tista' tissorvelja u tikkontrolla l-impjiegi fil-kju. Tista' tara n-numru ta' impjiegi pendenti, il-ħin tal-ipproċessar, u saħansitra terġa' tipprova impjiegi falluti.

 

Konklużjoni L-użu Redis Queue in Laravel huwa mod effiċjenti biex jiġu mmaniġġjati kompiti li ilhom għaddejjin mingħajr ma tfixkel l-ipproċessar ewlieni tal-applikazzjoni. Billi tuża Redis Queue, tista' ttejjeb il-prestazzjoni tal-applikazzjoni u ttejjeb l-esperjenza tal-utent.