Как Celery взаимодействует с Django

Python Senior Без компании
Как Celery взаимодействует с Django
Ответы
Celery интегрируется с Django через настройки в `settings.py`. Основные шаги: - Установка пакетов: ``` pip install celery redis # redis как брокер сообщений ``` - В `settings.py` добавляем конфигурацию: ``` CELERY_BROKER_URL = 'redis://localhost:6379/0' CELERY_RESULT_BACKEND = 'redis://localhost:6379/0' ``` - Создаем файл `celery.py` в папке проекта (рядом с `settings.py`): ``` import os from celery import Celery os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'project.settings') app = Celery('project') app.config_from_object('django.conf:settings', namespace='CELERY') app.autodiscover_tasks() ``` - В `__init__.py` проекта добавляем: ``` from .celery import app as celery_app __all__ = ['celery_app'] ``` - Создаем задачи в `tasks.py` любого приложения: ``` from celery import shared_task @shared_task def send_email_task(): # логика отправки email return "Email sent!" ``` Запуск Celery worker: ``` celery -A project worker -l info ``` Особенности: - Использует брокеры (Redis, RabbitMQ) для очередей задач - Интегрируется с Django ORM - Поддерживает отложенное выполнение (`task.apply_async(countdown=3600)`) - Работает с Django-моделями в задачах