U Laravel, Redis Queue je moćan alat koji se koristi za rješavanje dugotrajnih i dugotrajnih zadataka bez čekanja na njihov završetak. Korištenjem Redis Queue možete staviti zadatke kao što su slanje e-pošte, obrada pozadinskih zadataka ili generiranje izvješća u red čekanja i izvršiti ih asinkrono, poboljšavajući performanse aplikacije i poboljšavajući korisničko iskustvo.
Osnovni koraci za korištenje Redis Queue u Laravel
Konfigurirati Redis
Prvo morate instalirati i konfigurirati Redis u Laravel. Provjerite jeste li instalirali Redis paket putem Composer-a i konfigurirali Redis parametre veze u .env
datoteci.
CACHE_DRIVER=redis
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
Definirajte poslove
Zatim trebate definirati poslove koje želite staviti u red čekanja. Ti će se poslovi obavljati asinkrono i neovisno o glavnoj obradi 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());
}
}
Stavite poslove u red čekanja
Kada želite izvršiti posao, jednostavno ga stavite u red čekanja koristeći dispatch
ili dispatchNow
funkcije:
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();
Obrada poslova iz reda čekanja
Nakon što je posao stavljen u red čekanja, trebate postaviti Worker za izvršavanje poslova u redu čekanja. Laravel dolazi sa artisan command za pokretanje worker:
php artisan queue:work
Kontinuirano će worker slušati i izvršavati poslove u redu čekanja. Možete konfigurirati da worker upravlja brojem poslova i vremenom čekanja između rundi obrade.
Upravljanje poslovima u redu čekanja
Laravel pruža sučelje za upravljanje gdje možete nadzirati i kontrolirati poslove u redu čekanja. Možete vidjeti broj poslova na čekanju, vrijeme obrade, pa čak i ponovno pokušati s neuspjelim poslovima.
Zaključak Korištenje Redis Queue ina Laravel učinkovit je način za rješavanje dugotrajnih zadataka bez ometanja glavne obrade aplikacije. Korištenjem Redis Queue možete poboljšati rad aplikacije i poboljšati korisničko iskustvo.