Skip to main content

Command Palette

Search for a command to run...

Laravel Job & Queue System

Updated
•3 min read•View as Markdown
Laravel Job & Queue System

Laravel হলো একটি শক্তিশালী PHP ফ্রেমওয়ার্ক যা ডেভেলপারদের জন্য অনেক সুবিধা এনে দিয়েছে। এর অন্যতম চমৎকার একটি ফিচার হলো Job & Queue System। এই সিস্টেমের মাধ্যমে আপনি অ্যাপ্লিকেশনের সময়-নিবিড় কাজগুলোকে ব্যাকগ্রাউন্ডে পাঠিয়ে রাখতে পারেন, ফলে ইউজারদের জন্য অভিজ্ঞতাটি হয় অনেক দ্রুত ও স্মুথ।

এই ব্লগে আমরা শিখবো Laravel-এর Job এবং Queue কী, কেন এটি দরকার, এবং কীভাবে এটি ব্যবহার করা যায়।


✅ Job & Queue System কী?

Laravel-এ Job হচ্ছে এমন একটি ক্লাস, যা নির্দিষ্ট কোন কাজ (task) করার জন্য তৈরি করা হয়। এই কাজটি তাৎক্ষণিকভাবে সম্পন্ন না করে Queue (সারি) তে পাঠিয়ে ব্যাকগ্রাউন্ডে প্রসেস করা হয়।

Queue System হচ্ছে সেই প্রসেস, যেটি ব্যাকগ্রাউন্ডে Job গুলো একে একে রান করে।

🎯 উদাহরণ:

আপনি যদি ইউজার রেজিস্ট্রেশনের পর একটি ইমেইল পাঠাতে চান, তবে এটি সরাসরি না পাঠিয়ে Queue-তে পাঠানো যায়। এতে ইউজার দ্রুত রেজিস্ট্রেশন সম্পন্ন করতে পারে এবং ইমেইল কিছু সেকেন্ড পরে গেলেও সমস্যা হয় না।


🛠 কেন Job & Queue ব্যবহার করবেন?

  • ইউজার এক্সপেরিয়েন্স উন্নত হয়

  • অ্যাপ্লিকেশন দ্রুত রেসপন্স দেয়

  • সময়-নিবিড় কাজ যেমন: ইমেইল, রিপোর্ট জেনারেশন, ভিডিও প্রসেসিং সহজে ব্যাকগ্রাউন্ডে করা যায়

  • সার্ভারের উপর চাপ কমে


🚀 Laravel-এ Job & Queue সেটআপ

১. Queue ড্রাইভার কনফিগার

.env ফাইলে নিচের মতো সেট করুন:

QUEUE_CONNECTION=database

এর মানে Laravel Queue ডেটাবেজ ব্যবহার করবে Queue সংরক্ষণের জন্য।

২. মাইগ্রেশন তৈরি করুন

php artisan queue:table
php artisan migrate

এতে jobs নামে একটি টেবিল তৈরি হবে।


৩. Job তৈরি করুন

php artisan make:job SendWelcomeEmail

এর ফলে App\Jobs\SendWelcomeEmail নামে একটি Job ক্লাস তৈরি হবে।

উদাহরণ কোড:

namespace App\Jobs;

use App\Models\User;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use Illuminate\Support\Facades\Mail;
use App\Mail\WelcomeEmail;

class SendWelcomeEmail implements ShouldQueue
{
    use InteractsWithQueue, Queueable, SerializesModels;

    public $user;

    public function __construct(User $user)
    {
        $this->user = $user;
    }

    public function handle()
    {
        Mail::to($this->user->email)->send(new WelcomeEmail($this->user));
    }
}

৪. Job Dispatch করুন

use App\Jobs\SendWelcomeEmail;

SendWelcomeEmail::dispatch($user);

এখন এটি সরাসরি ইমেইল না পাঠিয়ে Queue-তে পাঠাবে।


৫. Queue Worker রান করুন

php artisan queue:work

এই কমান্ডটি চালালে Laravel Queue-এর মধ্যে থাকা Job গুলো প্রসেস করা শুরু করবে।


🧠 কিছু গুরুত্বপূর্ণ Queue ড্রাইভার

Laravel বেশ কিছু Queue ড্রাইভার সাপোর্ট করে:

  • sync – Job সাথে সাথেই এক্সিকিউট হয়

  • database – ডেটাবেজে Queue সংরক্ষণ করে

  • redis – দ্রুত পারফরম্যান্সের জন্য ব্যবহৃত হয়

  • beanstalkd, sqs – বড় স্কেল অ্যাপ্লিকেশনে ব্যবহৃত হয়


⏰ Delayed Job & Retry

Job Dispatch করতে চাইলে Delay ও Retry সেট করা যায়:

SendWelcomeEmail::dispatch($user)->delay(now()->addMinutes(5));
public $tries = 3; // Retry তিনবার

🧪 ফেইলড Job হ্যান্ডলিং

Job যদি ব্যর্থ হয় তাহলে Laravel সেটি failed_jobs টেবিলে সংরক্ষণ করতে পারে। এর জন্য .env এ নিচেরটা যুক্ত করুন:

QUEUE_FAILED_DRIVER=database

এরপর চালান:

php artisan queue:failed-table
php artisan migrate

Laravel-এর Job & Queue System আপনার অ্যাপ্লিকেশনকে আরও দক্ষ, দ্রুত এবং ইউজার-ফ্রেন্ডলি করতে সাহায্য করে। যেসব কাজ সময় সাপেক্ষ, যেমন ইমেইল পাঠানো, রিপোর্ট তৈরি, নোটিফিকেশন পাঠানো — এসব সহজেই ব্যাকগ্রাউন্ডে পাঠিয়ে রাখতে পারেন Queue-এর মাধ্যমে।

Queue নিয়ে কাজ করতে ভয় পাবার কিছু নেই — একটু প্র্যাকটিস করলে এটি হয়ে উঠবে Laravel ডেভেলপারদের জন্য একটি অসাধারণ টুল।

10 views

More from this blog

HTML-2026

HTML-কে আমরা সাধারণত ওয়েবের সবচেয়ে পুরোনো এবং স্থির প্রযুক্তিগুলোর একটি হিসেবে দেখি। CSS ও JavaScript যেখানে দ্রুত নতুন নতুন feature পাচ্ছে, HTML তুলনামূলকভাবে ধীরে পরিবর্তিত হয়। তবে ধীরে পরিবর্তন হওয়

Sep 3, 202612 min read2
HTML-2026
S

SliceTech

97 posts

Sharing basic web development tutorials.