লারাভেল টাস্ক শিডিউলিং (Laravel Task Scheduling)

Web Development - লারাভেল (Laravel) - লারাভেল এডভান্স (Laravel Advance) |
7
7

লারাভেল (Laravel) ফ্রেমওয়ার্কটি একটি শক্তিশালী টাস্ক শিডিউলিং সিস্টেম সরবরাহ করে, যার মাধ্যমে আপনি নির্দিষ্ট সময় বা নির্দিষ্ট সময় পর পর নির্দিষ্ট কাজগুলো অটোমেটিকভাবে চালাতে পারেন। এটি সিস্টেম অ্যাডমিন বা ডেভেলপারদের জন্য উপকারী, যারা সময় নির্ধারিত কাজের অটোমেশন করতে চান।

টাস্ক শিডিউলিং কি?

লারাভেল টাস্ক শিডিউলিং (Task Scheduling) একটি বিল্ট-ইন ফিচার যা আপনাকে নির্দিষ্ট সময় পর পর বা নির্দিষ্ট সময়ে কাজগুলো স্বয়ংক্রিয়ভাবে পরিচালনা করার সুযোগ দেয়। এটি অ্যাপ্লিকেশন বা সার্ভারে ক্রন (Cron) জবস ব্যবহার না করে সহজভাবে টাস্ক শিডিউল করা যায়।

টাস্ক শিডিউলিং কিভাবে কাজ করে?

লারাভেল টাস্ক শিডিউলিং কাজ করার জন্য প্রথমে আপনাকে একটি শিডিউলার তৈরি করতে হবে যা আপনার টাস্কগুলো নির্দিষ্ট সময়ে চলাবে। তারপর, আপনি Kernel ফাইলের মাধ্যমে এই শিডিউল করা কাজগুলো কনফিগার করবেন। লারাভেল শিডিউলিং স্বয়ংক্রিয়ভাবে cron জবকে ব্যবহার করে কাজগুলো চালায়।

টাস্ক শিডিউল করার জন্য শিডিউলার সেটআপ করা

লারাভেল টাস্ক শিডিউলিং কাজ করার জন্য আপনাকে প্রথমে আপনার সার্ভারে একটি cron জব সেট করতে হবে, যা প্রতি মিনিটে লারাভেল শিডিউলারকে চালাবে। এর জন্য আপনার সার্ভারের crontab এ নিম্নলিখিত এন্ট্রি যুক্ত করতে হবে:

* * * * * cd /path-to-your-project && php artisan schedule:run >> /dev/null 2>&1

এই ক্রন জবটি প্রতি মিনিটে লারাভেল শিডিউলার চালাবে, যা নির্দিষ্ট কাজগুলি পরিচালনা করবে।

টাস্ক শিডিউল করা

এখন, আপনি লারাভেল অ্যাপ্লিকেশনের app/Console/Kernel.php ফাইলে শিডিউল করা কাজগুলো নির্ধারণ করবেন। এই ফাইলে schedule() মেথডে আপনি আপনার টাস্ক বা কমান্ড শিডিউল করতে পারেন।

উদাহরণস্বরূপ:

protected function schedule(Schedule $schedule)
{
    // প্রতিদিন রাত ১২টায় একটি টাস্ক চালানোর জন্য
    $schedule->command('inspire')->dailyAt('00:00');

    // প্রতি ঘন্টায় একটি আর্টিসান কমান্ড চালানো
    $schedule->command('backup:run')->hourly();
}

এখানে, দুটি কাজ শিডিউল করা হয়েছে:

  1. inspire কমান্ডটি প্রতিদিন রাত ১২টায় চলবে।
  2. backup:run কমান্ডটি প্রতি ঘন্টায় চলবে।

টাস্ক শিডিউল করার অন্যান্য অপশন

লারাভেল আপনাকে টাস্ক শিডিউল করার জন্য অনেক অপশন প্রদান করে। কিছু গুরুত্বপূর্ণ অপশন হলো:

  • everyMinute(): প্রতি মিনিটে টাস্ক চালানো।
  • everyFiveMinutes(): প্রতি ৫ মিনিটে টাস্ক চালানো।
  • daily(): প্রতিদিন টাস্ক চালানো।
  • weekly(): প্রতি সপ্তাহে টাস্ক চালানো।
  • monthly(): প্রতি মাসে টাস্ক চালানো।

উদাহরণ:

$schedule->command('backup:run')->everyFiveMinutes();

কাস্টম কোড শিডিউল করা

আপনি চাইলে নিজের কাস্টম কোডও শিডিউল করতে পারেন। উদাহরণস্বরূপ, যদি আপনি একটি নির্দিষ্ট ফাংশনকে নির্দিষ্ট সময় পর পর চালাতে চান, তবে নিচের মতো কোড লিখতে পারেন:

$schedule->call(function () {
    // আপনার কাস্টম কোড এখানে
    DB::table('users')->where('status', 'inactive')->delete();
})->dailyAt('01:00');

এটি প্রতিদিন রাত ১টায় একটি নির্দিষ্ট কোড চালাবে যা inactive স্ট্যাটাসযুক্ত ইউজারদের ডিলিট করবে।

টাস্ক শিডিউল করার রিসোর্স ব্যবস্থাপনা

টাস্ক শিডিউলিংয়ে মাঝে মাঝে রিসোর্স ব্যবস্থাপনা গুরুত্বপূর্ণ হয়ে ওঠে, বিশেষত যখন আপনার টাস্কগুলো বড় বা সময়সাপেক্ষ হয়। তাই টাস্ক শিডিউল করার সময় আপনাকে রিসোর্স ব্যবস্থাপনার দিকে নজর দিতে হবে।

উদাহরণস্বরূপ, আপনি চাইলে withoutOverlapping() মেথড ব্যবহার করতে পারেন যাতে একযোগে একাধিক টাস্ক চলতে না পারে:

$schedule->command('backup:run')->hourly()->withoutOverlapping();

এটি নিশ্চিত করবে যে একাধিক ব্যাকআপ একই সময়ে চলছে না।


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

Content added By
Promotion