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.