استقرار برنامههای Django وابسته به Celery در لیارا
Celery یک کتابخانه مدیریت صف و پردازشهای ناهمزمان در پایتون است که به شما امکان میدهد تا وظایف (tasks) سنگین و زمانبر را به صورت پسزمینه و مستقل از اجرای اصلی برنامه، انجام دهید. این ابزار برای اجرای وظایف به صورت توزیعشده و با قابلیت زمانبندی طراحی شده است و معمولاً با Django برای مدیریت وظایف پسزمینه مثل ارسال ایمیل، پردازش دادهها و سایر عملیات طولانی ترکیب میشود. طبق مستندات شروع به کار با Celery در برنامههای Django، فرض میشود که شما برنامهای با ساختار زیر دارید:
توصیه میشود در ابتدا یک ماژول جدید به نام celery.py در مسیر proj/proj ایجاد کنید و قطعه کدی مشابه قطعه کد زیر را، در آن قرار دهید:
حال برای اطمینان از import شدن ماژول celery.py در زمان اجرای shared_task توسط فریمورک Django، ماژول init__.py__ را در مسیر proj/proj ایجاد کرده و قطعه کد زیر را در این فایل قرار دهید:
در قدم بعد باید پیکربندیهای مورد نیاز برای راهاندازی Celery را در انتهای فایل settings.py پروژه وارد کنید:
با قرار داشتن قطعه کد ()app.autodiscover_tasks در فایل proj/proj/celery.py این امکان برای شما فراهم است که task های مورد نظر خود را در فایل tasks.py هر App بهصورت جداگانه تعریف کنید؛ به عنوان مثال:
برای مثال، میتوانید با استفاده از دکوراتور shared_task@ بهشکل زیر، taskهای خود را تعریف کنید:
درنهایت قبل از استقرار این پروژه در لیارا نیاز است که فایل supervisor.conf را در مسیر اصلی پروژه ایجاد کرده و پیکربندی زیر را در این فایل قرار دهید: