V je zmogljivo orodje, ki se uporablja za reševanje dolgotrajnih in dolgotrajnih nalog, ne da bi čakali na njihovo dokončanje Laravel. Redis Queue Z uporabo Redis Queue lahko v čakalno vrsto postavite naloge, kot so pošiljanje e-pošte, obdelava opravil v ozadju ali ustvarjanje poročil, in jih izvajate asinhrono, s čimer izboljšate delovanje aplikacije in izboljšate uporabniško izkušnjo.
Osnovni koraki za uporabo Redis Queue v Laravel
Konfiguriraj Redis
Najprej morate namestiti in konfigurirati Redis v Laravel. Prepričajte se, da ste paket namestili Redis prek Composerja in konfigurirali Redis parametre povezave v .env
datoteki.
CACHE_DRIVER=redis
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
Določite delovna mesta
Nato morate določiti opravila, ki jih želite dati v čakalno vrsto. Ta opravila se bodo izvajala asinhrono in neodvisno od glavne obdelave aplikacije.
// 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());
}
}
Postavite opravila v čakalno vrsto
Ko želite opraviti opravilo, ga preprosto postavite v čakalno vrsto s funkcijami dispatch
ali 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();
Obdelajte opravila iz čakalne vrste
Ko je opravilo postavljeno v čakalno vrsto, morate nastaviti Worker za izvajanje opravil v čakalni vrsti. Laravel prihaja z artisan command za zagon worker:
php artisan queue:work
Nenehno bo worker poslušal in izvajal opravila v čakalni vrsti. Konfigurirate lahko tako, worker da obravnava število opravil in čakalni čas med krogi obdelave.
Upravljajte opravila v čakalni vrsti
Laravel ponuja vmesnik za upravljanje, kjer lahko spremljate in nadzirate opravila v čakalni vrsti. Ogledate si lahko število čakajočih opravil, čas obdelave in celo znova poskusite neuspela opravila.
Zaključek Uporaba Redis Queue in Laravel je učinkovit način za reševanje dolgotrajnih nalog, ne da bi motili glavno obdelavo aplikacije. Z uporabo Redis Queue lahko izboljšate delovanje aplikacije in izboljšate uporabniško izkušnjo.