Добавление Celery в проект
Необходимо сконфигурировать Celery. Создайте новый файл рядом с файлом settings.py myshop и назовите его celery.py. Этот файл будет содержать конфигурацию Celery для проекта. Добавьте в него следующий код:
import os
from celery import Celery
from django.conf import settings
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'myshop.settings')
app = Celery('myshop')
app.config_from_object('django.conf:settings')
app.autodiscover_tasks(lambda: settings.INSTALLED_APPS)
В этом коде мы установили переменную DJANGO_SETTINGS_MODULE для программы командной строки Celery. Затем создадим экземпляр нашего приложения с помощью app = Celery('myshop'). Мы загружаем любую настраиваемую конфигурацию из параметров проекта с помощью метода config_from_object(). Наконец, мы говорим Celery автоматически обнаруживать асинхронные задачи для приложений, перечисленных в параметрах INSTALLED_APPS. Celery будет искать файл tasks.py в каждом каталоге приложения для загрузки определенных в нем асинхронных задач.
Необходимо импортировать модуль celery в файл __init__.py, чтобы убедиться, что он загружается при запуске Джанго. Измените файл myshop/__init__.py и добавьте в него следующий код:
# import celery
from .celery import app as celery_app
Теперь можно запускать программирование асинхронных задач для приложений.
Параметр CELERY_ALWAYS_EAGER позволяет выполнять задачи локально на синхронной основе, а не отправлять их в очередь. Это полезно для выполнения модульных тестов или проекта в локальной среде без запуска Celery.