Назад к вопросам
Junior — Middle
62
Как настроить и использовать Celery для выполнения асинхронных задач в проекте на Django?
Компании, где спрашивали
Стилсофт
Ответ от нейросети
sobes.tech AI
Для настройки и использования Celery в проекте на Django нужно выполнить несколько шагов:
- Установить Celery и брокер сообщений (обычно Redis или RabbitMQ):
pip install celery redis
- В корне проекта Django создать файл
celery.pyс конфигурацией:
import os
from celery import Celery
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'your_project.settings')
app = Celery('your_project')
app.config_from_object('django.conf:settings', namespace='CELERY')
app.autodiscover_tasks()
- В
__init__.pyвашего проекта импортировать Celery:
from .celery import app as celery_app
__all__ = ('celery_app',)
- Настроить брокер в
settings.py:
CELERY_BROKER_URL = 'redis://localhost:6379/0'
- Создать задачи в любом из приложений Django, например, в
tasks.py:
from celery import shared_task
@shared_task
def add(x, y):
return x + y
- Запустить брокер (Redis или RabbitMQ) и воркер Celery:
celery -A your_project worker --loglevel=info
- Вызвать задачу асинхронно из кода:
add.delay(4, 6)
Таким образом, Celery позволяет выполнять задачи в фоне, не блокируя основной поток Django.