search icon
در حال جستجو...

تنظیم Celery در جنگو

Celery یک سیستم است برای صف بندی کارها و برای کارهایی مناسب است که نیاز به زمان زیادی برای اجرا دارند مثل ارسال ایمیل یا پیامک یا پردازش تصویر یا pdf و غیره

برای اجرای سلری در جنگو توی رانفلر کار بسیار ساده است ما به صورت پیشفرض از supervisord در اپلیکیشن جنگو استفاده می کنیم.

برای اضافه کردن دستوراتی که همیشه اجرا بماند باید در supervisord این دستورات قرار بگیرد.

 

مراحل تنظیم Celery در جنگو

۱. وارد مدیریت پروژه و سپس وارد پروژه مورد نظر شوید.

۲. در صفحه جدید لیست سرویس ها مشخص است که روی تنظیمات سرویس کلیک کنید تا وارد صفحه جزییات سرویس مورد نظر شوید.

۳.در این صفحه روی کانفیگ مپ کلیک کنید. (این قابلیت این امکان را به شما می دهد که فایل های کانفیگ را برای مسیر هایی که می خواهید به سادگی ایجاد و تنظیم کنید)

 

 

۴. در این صفحه ویرایش supervisord.conf را بزنید

 

 

۵. در پنجره باز شده کانفیگ هایی برای اجرا جنگو و nginx مشاهده می کنید که در انتهای فایل عبارت های زیر رو اضافه کنید. (دقت کنید به جای عبارت myproject نام پروژه جنگو خود را وارد کنید)

[program:worker]
priority=6
autostart=true
autorestart=true
stderr_logfile_maxbytes=0
stdout_logfile_maxbytes=0
command=celery -A myproject worker -l info
stderr_logfile=/dev/stdout
stdout_logfile=/dev/stderr

[program:beat]
priority=7
autostart=true
autorestart=true
stderr_logfile_maxbytes=0
stdout_logfile_maxbytes=0
command=celery -A myproject beat -l info
stderr_logfile=/dev/stdout
stdout_logfile=/dev/stderr

 

۶. بعد از انجام این کار در همین بخش بالای صفحه جلوی عبارت programs باید اپ های جدید که در بالا تعریف کردید را اضافه کنید مانند تنظیم زیر.


[group:django-worker]
priority=999
programs=nginx,django,worker,beat

 

 

تنظیمات گرافیکی Celery

در بخش تنظیمات آیتم می توانید تمام تنظیمات بالا را به صورت گرافیکی با کاهش ریسک خطای سینتکسی در بخش سوپروایزر انجام دهید :

در بخش تنظیمات می توایند به تنظیمات گرافیکی Celery در تب های مربوط به Celery Worker و Celery Beat دسترسی داشته باشید .

 

تنظیمات Celery Worker

این بخش مربوط به ورکر celery می باشد و برای صف و کارهای پس‌زمینه استفاده می شود .

مقدار Concurrency مربوط به تعداد تسک های همزمان می باشد.

باقی پارامتر ها هم مانند برنامه های دیگر مثل nginx و gunicorn قابل تنظیم است .

 

Celery Beat

زمانبند تسک های دوره ای می باشد که یک دستور اجرایی مانند باقی برنامه ها دارد و تنظیمات مربوط به زمان بندی اجرا در Celery قابل تنظیم می باشد .