Redis Queue ਵਿੱਚ Laravel: ਕਤਾਰ ਨੂੰ ਸੰਭਾਲਣਾ

ਵਿੱਚ Laravel, Redis Queue ਇੱਕ ਸ਼ਕਤੀਸ਼ਾਲੀ ਟੂਲ ਹੈ ਜੋ ਲੰਬੇ ਸਮੇਂ ਤੋਂ ਚੱਲ ਰਹੇ ਅਤੇ ਸਮਾਂ ਬਰਬਾਦ ਕਰਨ ਵਾਲੇ ਕੰਮਾਂ ਨੂੰ ਪੂਰਾ ਹੋਣ ਦੀ ਉਡੀਕ ਕੀਤੇ ਬਿਨਾਂ ਹੈਂਡਲ ਕਰਨ ਲਈ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ। ਦੀ ਵਰਤੋਂ ਕਰਕੇ Redis Queue, ਤੁਸੀਂ ਕਾਰਜਾਂ ਨੂੰ ਕਤਾਰਬੱਧ ਕਰ ਸਕਦੇ ਹੋ ਜਿਵੇਂ ਕਿ ਈਮੇਲਾਂ ਭੇਜਣਾ, ਬੈਕਗ੍ਰਾਉਂਡ ਕਾਰਜਾਂ ਦੀ ਪ੍ਰਕਿਰਿਆ ਕਰਨਾ, ਜਾਂ ਰਿਪੋਰਟਾਂ ਤਿਆਰ ਕਰਨਾ, ਅਤੇ ਉਹਨਾਂ ਨੂੰ ਅਸਿੰਕ੍ਰੋਨਸ ਤਰੀਕੇ ਨਾਲ ਲਾਗੂ ਕਰਨਾ, ਐਪਲੀਕੇਸ਼ਨ ਦੀ ਕਾਰਗੁਜ਼ਾਰੀ ਵਿੱਚ ਸੁਧਾਰ ਕਰਨਾ ਅਤੇ ਉਪਭੋਗਤਾ ਅਨੁਭਵ ਨੂੰ ਵਧਾਉਣਾ।

Redis Queue ਵਿੱਚ ਵਰਤਣ ਲਈ ਬੁਨਿਆਦੀ ਕਦਮ Laravel

ਕੌਂਫਿਗਰ ਕਰੋ Redis

Redis ਸਭ ਤੋਂ ਪਹਿਲਾਂ, ਤੁਹਾਨੂੰ ਵਿੱਚ ਸਥਾਪਿਤ ਅਤੇ ਸੰਰਚਿਤ ਕਰਨ ਦੀ ਲੋੜ ਹੈ Laravel । ਯਕੀਨੀ ਬਣਾਓ ਕਿ ਤੁਸੀਂ Redis ਕੰਪੋਜ਼ਰ ਰਾਹੀਂ ਪੈਕੇਜ ਇੰਸਟਾਲ ਕੀਤਾ ਹੈ ਅਤੇ ਫਾਈਲ Redis ਵਿੱਚ ਕਨੈਕਸ਼ਨ ਪੈਰਾਮੀਟਰਾਂ ਨੂੰ ਕੌਂਫਿਗਰ ਕੀਤਾ ਹੈ। .env

CACHE_DRIVER=redis  
REDIS_HOST=127.0.0.1  
REDIS_PASSWORD=null  
REDIS_PORT=6379  

ਨੌਕਰੀਆਂ ਨੂੰ ਪਰਿਭਾਸ਼ਿਤ ਕਰੋ

ਅੱਗੇ, ਤੁਹਾਨੂੰ ਉਹਨਾਂ ਨੌਕਰੀਆਂ ਨੂੰ ਪਰਿਭਾਸ਼ਿਤ ਕਰਨ ਦੀ ਜ਼ਰੂਰਤ ਹੈ ਜੋ ਤੁਸੀਂ ਕਤਾਰ ਵਿੱਚ ਲਗਾਉਣਾ ਚਾਹੁੰਦੇ ਹੋ। ਇਹ ਨੌਕਰੀਆਂ ਐਪਲੀਕੇਸ਼ਨ ਦੀ ਮੁੱਖ ਪ੍ਰਕਿਰਿਆ ਤੋਂ ਅਸਿੰਕਰੋਨਸ ਅਤੇ ਸੁਤੰਤਰ ਤੌਰ 'ਤੇ ਕੀਤੀਆਂ ਜਾਣਗੀਆਂ।

// 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());  
    }  
}  

ਨੌਕਰੀਆਂ ਨੂੰ ਕਤਾਰ ਵਿੱਚ ਪਾਓ

dispatch ਜਦੋਂ ਤੁਸੀਂ ਕੋਈ ਕੰਮ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹੋ, ਤਾਂ ਤੁਸੀਂ ਇਸਨੂੰ ਜਾਂ ਫੰਕਸ਼ਨਾਂ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਕਤਾਰ ਵਿੱਚ ਪਾ ਦਿੰਦੇ ਹੋ 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();  

ਕਤਾਰ ਤੋਂ ਨੌਕਰੀਆਂ ਦੀ ਪ੍ਰਕਿਰਿਆ ਕਰੋ

ਨੌਕਰੀ ਨੂੰ ਕਤਾਰ ਵਿੱਚ ਪਾਉਣ ਤੋਂ ਬਾਅਦ, ਤੁਹਾਨੂੰ Worker ਕਤਾਰ ਵਿੱਚ ਨੌਕਰੀਆਂ ਨੂੰ ਚਲਾਉਣ ਲਈ ਇੱਕ ਸੈੱਟਅੱਪ ਕਰਨ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ। ਚਲਾਉਣ ਲਈ Laravel ਇੱਕ ਨਾਲ ਆਉਂਦਾ ਹੈ: artisan command worker

php artisan queue:work

worker ਕਤਾਰ ਵਿੱਚ ਨੌਕਰੀਆਂ ਨੂੰ ਲਗਾਤਾਰ ਸੁਣੇਗਾ ਅਤੇ ਲਾਗੂ ਕਰੇਗਾ । ਤੁਸੀਂ worker ਨੌਕਰੀਆਂ ਦੀ ਸੰਖਿਆ ਨੂੰ ਸੰਭਾਲਣ ਲਈ ਸੰਰਚਿਤ ਕਰ ਸਕਦੇ ਹੋ ਅਤੇ ਪ੍ਰੋਸੈਸਿੰਗ ਦੌਰ ਦੇ ਵਿਚਕਾਰ ਉਡੀਕ ਸਮਾਂ.

ਕਤਾਰ ਵਿੱਚ ਨੌਕਰੀਆਂ ਦਾ ਪ੍ਰਬੰਧਨ ਕਰੋ

Laravel ਇੱਕ ਪ੍ਰਬੰਧਨ ਇੰਟਰਫੇਸ ਪ੍ਰਦਾਨ ਕਰਦਾ ਹੈ ਜਿੱਥੇ ਤੁਸੀਂ ਕਤਾਰ ਵਿੱਚ ਨੌਕਰੀਆਂ ਦੀ ਨਿਗਰਾਨੀ ਅਤੇ ਨਿਯੰਤਰਣ ਕਰ ਸਕਦੇ ਹੋ। ਤੁਸੀਂ ਬਕਾਇਆ ਨੌਕਰੀਆਂ ਦੀ ਸੰਖਿਆ, ਪ੍ਰਕਿਰਿਆ ਦਾ ਸਮਾਂ ਦੇਖ ਸਕਦੇ ਹੋ, ਅਤੇ ਅਸਫਲ ਨੌਕਰੀਆਂ ਦੀ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਵੀ ਕਰ ਸਕਦੇ ਹੋ।

 

Redis Queue ਵਿੱਚ ਦੀ ਵਰਤੋਂ ਕਰਨਾ Laravel ਐਪਲੀਕੇਸ਼ਨ ਦੀ ਮੁੱਖ ਪ੍ਰਕਿਰਿਆ ਵਿੱਚ ਵਿਘਨ ਪਾਏ ਬਿਨਾਂ ਲੰਬੇ ਸਮੇਂ ਤੋਂ ਚੱਲ ਰਹੇ ਕੰਮਾਂ ਨੂੰ ਸੰਭਾਲਣ ਦਾ ਇੱਕ ਕੁਸ਼ਲ ਤਰੀਕਾ ਹੈ ਦੀ ਵਰਤੋਂ ਕਰਕੇ Redis Queue, ਤੁਸੀਂ ਐਪਲੀਕੇਸ਼ਨ ਦੀ ਕਾਰਗੁਜ਼ਾਰੀ ਵਿੱਚ ਸੁਧਾਰ ਕਰ ਸਕਦੇ ਹੋ ਅਤੇ ਉਪਭੋਗਤਾ ਅਨੁਭਵ ਨੂੰ ਵਧਾ ਸਕਦੇ ਹੋ।