Celery
celery یک سیستم توزیع شده ساده و flexible برای پردازش مقادیر زیادی پیام است. در این مستند که celery منتشر کرده است میتوانید بیشتر با آن آشنا شوید.
در پروژههای بزرگ شما قطعا نیاز به استفاده از celery خواهید داشت تا یک سری تسکها را اجرا کنید (به صورت periodic یا aperiodic). به همین دلیل ما در این پروژه یک تسک celery خیلی ساده خواهیم داشت تا بتوانید با deploy کردن آن بر روی دارکوب نیز آشنا شوید.
مطابق پروژهی Djangoای که زدهایم، ما celeryای بالا آوردیم که به ما questionهایی که تا به حال vote نخوردهاند را نشان دهد.
برای راهاندازی celery نیاز به یک broker داریم تا پیامها در آنجا push شوند و بررسی شوند. ما برای celeryای که ما بالا آوردهایم از redis استفاده کردهایم. همچنین از beat نیز استفاده کردهایم.
beat به یک جزء زمانبندی اشاره دارد. Celery Beat مسئول برنامه ریزی کارهای دورهای (periodic) و تکراری است. این وظایف را در فواصل زمانی مشخص برای Celery Brokerها ارسال می کند.
کانفیگ celery پروژه ما به شکل زیر است.
ما با استفاده از crontabای که نوشتیم، هر دقیقه یک بار این تسک اجرا میکنیم.
همچنین تسک ما به شکل زیر است:
همچنین در settings.py باید مشخص کنیم که سلری به redis یا rabbitMQ یا … وصل شود.