A Laravel, Redis Queue egy hatékony eszköz, amellyel hosszan tartó és időigényes feladatokat kezelhet anélkül, hogy meg kellene várnia azok befejezését. A használatával Redis Queue sorba helyezhet olyan feladatokat, mint például e-mailek küldése, háttérfeladatok feldolgozása vagy jelentések generálása, és aszinkron módon végrehajthatja azokat, javítva az alkalmazások teljesítményét és a felhasználói élményt.
Redis Queue A használat alapvető lépései Laravel
Beállítás Redis
Először telepítenie és konfigurálnia kell Redis a Laravel. Győződjön meg arról, hogy telepítette a Redis csomagot a Composeren keresztül, és konfigurálta a Redis kapcsolati paramétereket a .env
fájlban.
CACHE_DRIVER=redis
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
Határozza meg az állásokat
Ezután meg kell határoznia azokat a feladatokat, amelyeket a sorba szeretne helyezni. Ezeket a munkákat aszinkron módon és a pályázat fő feldolgozásától függetlenül hajtják végre.
// 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());
}
}
Állítsa be az állásokat a sorba
Ha egy munkát szeretne végrehajtani, egyszerűen be kell helyeznie a sorba a dispatch
vagy dispatchNow
függvényekkel:
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();
Feladatok feldolgozása a sorból
Miután a job bekerült a sorba, be kell állítania a-t Worker a sorban lévő jobok végrehajtásához. a következővel Laravel jár: artisan command worker
php artisan queue:work
A worker rendszer folyamatosan figyeli és végrehajtja a sorban lévő feladatokat. Beállíthatja, hogy worker kezelje a feladatok számát és a feldolgozási körök közötti várakozási időt.
A sorban álló feladatok kezelése
Laravel felügyeleti felületet biztosít, ahol figyelemmel kísérheti és vezérelheti a sorban lévő feladatokat. Megtekintheti a függőben lévő feladatok számát, a feldolgozási időt, és még a sikertelen feladatokat is újrapróbálhatja.
Következtetés Redis Queue Az in használata Laravel hatékony módja a hosszan tartó feladatok kezelésének az alkalmazás fő feldolgozásának megszakítása nélkül. A használatával Redis Queue javíthatja az alkalmazások teljesítményét és javíthatja a felhasználói élményt.