🚀 Как запустить Celery в Django: Подробное руководство с примерами кода
Как запустить Celery в Django?
Для запуска Celery в Django вам понадобятся следующие шаги:
- Установите Celery, выполнив следующую команду:
- Создайте файл tasks.py в вашем приложении Django.
- Определите функции-задачи в файле tasks.py. Например:
- Настройте файл settings.py вашего проекта, добавив следующие строки:
- Запустите Celery с помощью команды:
pip install celery
from celery import shared_task
@shared_task
def my_task():
# Ваш код задачи
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']
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 может значительно улучшить производительность вашего веб-приложения, особенно при обработке долгих и ресурсоемких задач.