Sobes.tech
Назад к вопросам
Junior — Middle
62

Как настроить и использовать Celery для выполнения асинхронных задач в проекте на Django?

Компании, где спрашивали
Стилсофт

Ответ от нейросети

sobes.tech AI

Для настройки и использования Celery в проекте на Django нужно выполнить несколько шагов:

  1. Установить Celery и брокер сообщений (обычно Redis или RabbitMQ):
pip install celery redis
  1. В корне проекта 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()
  1. В __init__.py вашего проекта импортировать Celery:
from .celery import app as celery_app

__all__ = ('celery_app',)
  1. Настроить брокер в settings.py:
CELERY_BROKER_URL = 'redis://localhost:6379/0'
  1. Создать задачи в любом из приложений Django, например, в tasks.py:
from celery import shared_task

@shared_task
def add(x, y):
    return x + y
  1. Запустить брокер (Redis или RabbitMQ) и воркер Celery:
celery -A your_project worker --loglevel=info
  1. Вызвать задачу асинхронно из кода:
add.delay(4, 6)

Таким образом, Celery позволяет выполнять задачи в фоне, не блокируя основной поток Django.