Header Ads

Header ADS

Laravel Queue Jobs

 Laravel Queue Jobs

ওয়েব অ্যাপ্লিকেশনে অনেক সময় এমন কিছু কাজ থাকে যেগুলো সাথে সাথে শেষ করা দরকার হয় না — যেমন ইমেইল পাঠানো, নোটিফিকেশন সেন্ড করা, ভিডিও প্রসেসিং, বড় ডেটা ইম্পোর্ট ইত্যাদি। এসব কাজ যদি আমরা সরাসরি রান করি তাহলে ইউজারের জন্য অ্যাপ ধীর মনে হবে।
এই সমস্যার সমাধানই হল Laravel Queue Jobs
Queue Jobs কি?
Queue Jobs হল ব্যাকগ্রাউন্ডে কাজ প্রসেস করার একটি সিস্টেম। মানে, তুমি একটা কাজ (Job) কিউ-তে পাঠিয়ে দিবে, আর সেটা পরে আলাদা Worker প্রসেস করে দেবে। এতে করে ইউজার ইন্টারফেস ফাস্ট আর স্মুথ থাকে।
কেন Queue ব্যবহার করা উচিত?
- ইমেইল, SMS, নোটিফিকেশন দ্রুত ডেলিভারি
- টাইম কনজিউমিং কাজ ব্যাকগ্রাউন্ডে করা
- অ্যাপের পারফরম্যান্স বাড়ানো
- স্কেলেবল সিস্টেম তৈরি করা
Laravel এ Queue ড্রাইভারসমূহ
-Laravel এ একাধিক Queue Driver আছে:
-sync → সাথে সাথে কাজ করে (testing এর জন্য ভালো)
-database → jobs টেবিলে স্টোর হয়
-redis → ফাস্ট ইন-মেমোরি সলিউশন
-beanstalkd → টাস্ক কিউ ম্যানেজমেন্ট টুল
-sqs → AWS Simple Queue Service
Step by Step Example
1. Job তৈরি করা
php artisan make:job SendEmailJob
2. Job ক্লাস (app/Jobs/SendEmailJob.php)
namespace App\Jobs;
use App\Mail\WelcomeMail;
use Illuminate\Bus\Queueable;
use Illuminate\Support\Facades\Mail;
use Illuminate\Contracts\Queue\ShouldQueue;
class SendEmailJob implements ShouldQueue
{
use Queueable;
public $details;
public function __construct($details)
{
$this->details = $details;
}
public function handle()
{
Mail::to($this->details['email'])
->send(new WelcomeMail($this->details));
}
}
3. Job Dispatch করা
use App\Jobs\SendEmailJob;
Route::get('/send-mail', function () {
$details = [
'email' => 'test@example.com',
'name' => 'Iftekher'
];
SendEmailJob::dispatch($details);
return "Email Job Dispatched!";
});
4. Queue Worker চালানো
php artisan queue:work
Laravel Queue Jobs এর মাধ্যমে আমরা —
- অ্যাপকে পারফরম্যান্ট রাখতে পারি
- ইউজার এক্সপেরিয়েন্স বাড়াতে পারি
- বড় বড় কাজ ব্যাকগ্রাউন্ডে প্রসেস করতে পারি

No comments

Theme images by fpm. Powered by Blogger.