🚀 Как запустить Celery в Django: Подробное руководство с примерами кода

Как запустить Celery в Django?

Для запуска Celery в Django вам понадобятся следующие шаги:

  1. Установите Celery, выполнив следующую команду:
  2. pip install celery
  3. Создайте файл tasks.py в вашем приложении Django.
  4. Определите функции-задачи в файле tasks.py. Например:
  5. from celery import shared_task
    
    @shared_task
    def my_task():
        # Ваш код задачи
  6. Настройте файл settings.py вашего проекта, добавив следующие строки:
  7. CELERY_BROKER_URL = 'адрес_rabbitmq'
    CELERY_RESULT_BACKEND = 'адрес_rabbitmq'
    
    CELERY_IMPORTS = (
        'путь_к_вашему_приложению.tasks', # Замените на ваш путь к файлу tasks.py
    )
    
    CELERY_TASK_SERIALIZER = 'json'
    CELERY_RESULT_SERIALIZER = 'json'
    CELERY_ACCEPT_CONTENT = ['json']
    
  8. Запустите Celery с помощью команды:
  9. celery -A ваш_проект worker --loglevel=info

Теперь вы можете вызывать ваши задачи из вашего Django-приложения, используя функцию delay из Celery.

Например:

from путь_к_вашему_приложению.tasks import my_task

my_task.delay() # Вызов задачи

Убедитесь, что у вас запущен RabbitMQ, так как Celery использует его в качестве брокера сообщений.

Детальный ответ

Как запустить Celery в Django

Цель: В этой статье мы рассмотрим, как настроить и запустить Celery в Django для асинхронной обработки задач.

Шаг 1: Установка Celery

Первым шагом является установка Celery в вашем проекте Django. Самый простой способ установить Celery - использовать pip:

pip install celery

После установки Celery добавьте его в файл requirements.txt вашего проекта, чтобы обеспечить однородность среды разработки.

Шаг 2: Создание рабочего приложения Celery

В Django мы обычно работаем с приложениями, и Celery не исключение. Создайте новое Django-приложение для работы с Celery:

python manage.py startapp celeryapp

После создания приложения вам нужно зарегистрировать его в файле settings.py вашего проекта. Откройте файл settings.py и найдите переменную INSTALLED_APPS. Добавьте новое приложение 'celeryapp' к списку приложений:

INSTALLED_APPS = [
    ...
    'celeryapp',
]

Шаг 3: Настройка брокера сообщений

Для работы Celery требуется брокер сообщений, который отвечает за передачу задач между Django и Celery. Вам понадобится установить и настроить брокер сообщений. Наиболее популярным выбором является RabbitMQ.

Установите RabbitMQ и его зависимости:

sudo apt-get install rabbitmq-server

Запустите сервер RabbitMQ:

sudo service rabbitmq-server start

Далее, вам нужно настроить брокер сообщений в файле settings.py. Добавьте следующие конфигурации внизу файла:

BROKER_URL = 'amqp://guest:guest@localhost:5672//'
CELERY_RESULT_BACKEND = 'rpc://'

Шаг 4: Создание и запуск задач

Теперь, когда ваша конфигурация готова, вы можете создавать и запускать задачи с помощью Celery.

В вашем Django-приложении добавьте новый модуль tasks.py и определите в нем функции в качестве ваших задач:

from celery import shared_task

@shared_task
def send_email_task(email):
    # Ваш код для отправки электронной почты
    ...

@shared_task
def process_data_task(data):
    # Ваш код для обработки данных
    ...
    return result

После определения задач, вы можете запускать их из вашего приложения Django. Например, для запуска задачи отправки электронной почты:

from celeryapp.tasks import send_email_task

send_email_task.delay(email='example@example.com')

Вы можете передавать параметры в ваши задачи, и они будут переданы в соответствующие функции.

Заключение

Поздравляю! Теперь вы знаете, как запустить Celery в Django для асинхронной обработки задач. Следуйте вышеуказанным шагам, чтобы настроить Celery в своем проекте. Помните, что использование Celery может значительно улучшить производительность вашего веб-приложения, особенно при обработке долгих и ресурсоемких задач.

Видео по теме

Дружим Django и Celery, Celery Result, Celery Beat

Celery + Django - теория #1

Celery + Django + Docker = Cat Downloader - Demo-проект, демонстрирующий принципы работы Celery

Похожие статьи:

🚀 Как запустить Celery в Django: Подробное руководство с примерами кода