Redis Queue in Laravel: Sorozatkezelés kezelése

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.