Добавление 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.

results matching ""

    No results matching ""