Celery কি
Django ডিফল্ট ভাবে একসাথে একটি টাস্ক চালাতে পারে কিন্তু যদি আমরা একের অধিক টাস্ক দিতে চাই তাহলে আমরা Django এর জন্য celery ব্যবহার করবো আরো সহজ ভাবে বলতে গেলে যদি একের অধিক টাস্ক একটা একটা করে ব্যাকএন্ড এ কাজ শেষে ফ্রন্টএন্ড এ রেজাল্ট হিসাবে পাঠিয়ে দেয়।
celery নিয়ে কাজ করার জন্য আমাদের কয়েকটি জিনিস সম্পর্কে জানতে হবে
- CELERY_RESULT_BACKEND
- django-celery-results
- CELERY_BROKER_URL
- django-celery-beat
CELERY_RESULT_BACKEND : সংক্ষেপে বললে যে টাস্ক গুলো করতে দেব ঐগুলো সাকসেস ও ফেল দেখার জন্য
django-celery-results & CELERY_BROKER_URL: ডেটাবেজ থেকে দেখবো বা অন্য কোন স্টোরেজ ব্যবহার করবো তা হলো।
django-celery-beat : যদি টাস্ক গুলো নির্দিষ্ট সময়ে চালাতে হয় তাহলে ব্যবহার হয়।
রেজাল্ট ব্যাকএন্ড Result Backend
টাস্ক গুলো যে ব্যাকএন্ড এ চলেছে এইগুলো পরবর্তীতে আমাদের দরকার হতে পারে যে কয়টা সফল কয়টা ফেল বা এ জাতীয় টাস্ক সম্পর্কে পরবর্তীতে জানার জন্য ব্যাকএন্ড এ রেজাল্ট গুলো সেভ করা যায়। যদি না করি তাহলে পরবর্তীতে তাহলে Celery results সংরক্ষণ করা হবে না। এটি একটি সমস্যা হতে পারে যদি আপনি results কে অ্যাক্সেস করতে চান।
django-celery-results এবং CELERY_RESULT_BACKEND
django-celery-results একটি Django extension যা Django ORM ব্যবহার করে Celery results সংরক্ষণ করে। এটি Celery result backend হিসাবে Database backend ব্যবহার করে।
CELERY_RESULT_BACKEND একটি Celery setting যা Celery result backend নির্দিষ্ট করে। এটি যেকোনো ধরণের Celery result backend ব্যবহার করতে পারে, যেমন RPC backend, Redis backend, বা Database backend।
তাহলে, দুইটাই ব্যবহার করতে হবে না। আপনি যেকোনো একটা ব্যবহার করতে পারেন।
django-celery-results ব্যবহার করার সুবিধা:
- Django ORM ব্যবহার করে results সংরক্ষণ করা সহজ: django-celery-results ব্যবহার করে, আপনি results সংরক্ষণ করতে Django ORM ব্যবহার করতে পারেন। এটি results সংরক্ষণ করাকে আরও সহজ করে তোলে।
- results কে Django models হিসাবে অ্যাক্সেস করা যায়: django-celery-results ব্যবহার করে, আপনি results কে Django models হিসাবে অ্যাক্সেস করতে পারেন। এটি results অ্যাক্সেস করাকে আরও সহজ করে তোলে।
CELERY_RESULT_BACKEND ব্যবহার করার সুবিধা:
- যেকোনো ধরণের Celery result backend ব্যবহার করা যায়: CELERY_RESULT_BACKEND ব্যবহার করে, আপনি যেকোনো ধরণের Celery result backend ব্যবহার করতে পারেন। এটি আপনাকে আপনার চাহিদা অনুসারে Celery result backend নির্বাচন করার সুযোগ দেয়।
- Celery result backend কে কনফিগার করা সহজ: CELERY_RESULT_BACKEND ব্যবহার করে, আপনি Celery result backend কে সহজেই কনফিগার করতে পারেন।
CELERY_RESULT_BACKEND ব্যবহার না করলে কী হবে:
আপনি যদি django-celery-results বা CELERY_RESULT_BACKEND ব্যবহার না করেন তাহলে Celery results সংরক্ষণ করা হবে না। এটি একটি সমস্যা হতে পারে যদি আপনি results কে অ্যাক্সেস করতে চান।
CELERY_BROKER_URL
সেলেরি_ব্রোকার_ইউআরএল অপশনটি সেলেরি কাস্টম ব্রোকার ইউআরএল বর্ণনা করে। সেলেরি একটি টাস্ক কিউ ম্যানেজমেন্ট সিস্টেম যা টাস্কগুলিকে তাদের সম্পূর্ণ করার জন্য ওয়ার্কারগুলিতে পাঠায়। ব্রোকার সেই সার্ভার যেখানে টাস্কগুলি স্টোর করা হয় এবং ওয়ার্কারগুলিকে পাঠানো হয়।
django-celery-beat
django-celery-beat হল একটি Django extension যা Celery periodic tasks চালানোর জন্য। Celery periodic tasks হল এমন tasks যা নির্দিষ্ট সময়সূচীতে চালানো হয়।
django-celery-beat ব্যবহার করার জন্য কিছু সাধারণ উদাহরণ হল:
- ইমেল পাঠানো: আপনি django-celery-beat ব্যবহার করে প্রতিদিন সকালে একটি ইমেল পাঠাতে পারেন।
- ডেটা ব্যাকআপ নেওয়া: আপনি django-celery-beat ব্যবহার করে প্রতি সপ্তাহে একটি ডেটা ব্যাকআপ নিতে পারেন।
- সফ্টওয়্যার আপডেট করা: আপনি django-celery-beat ব্যবহার করে প্রতি মাসে একটি সফ্টওয়্যার আপডেট করতে পারেন।
পরবর্তী টিউটোরিয়ালে আমরা celery নিয়ে কাজ করবো