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, আপনি অ্যাপ্লিকেশন কর্মক্ষমতা উন্নত করতে এবং ব্যবহারকারীর অভিজ্ঞতা উন্নত করতে পারেন৷