Встановлення Rabbit MQ
- для Windows:
Завантажте з RabbitMQ.com → Запустіть інсталятор.
- для Linux/Debian
# Оновіть пакунки
sudo apt update
# Встановіть RabbitMQ
sudo apt install -y rabbitmq-server
# Запустіть RabbitMQ
sudo systemctl start rabbitmq-server
- за допомогою Docker
docker run -it --rm --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:4.0-management
- Для доступу до панелі керування перейдіть за адресою
http://localhost:15672
(логін:guest
/guest
).
Встановлення Celery
pip install celery
Налаштування Django
- У вашій папці проекту, де знаходиться settings.py, створіть файл celery.py і додайте до нього наступний код:
import os
from celery import Celery
# Встановіть модуль налаштувань Django
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'projectcore.settings')
app = Celery('projectcore') # змініть projectcore на ім'я вашого проекту
app.config_from_object('django.conf:settings', namespace='CELERY')
app.autodiscover_tasks() # щоб всі завдання автоматично виявлялись
- Змініть ваш **init.py**
from .celery import app as celery_app
__all__ = ('celery_app',)
- Змініть ваш Settings.py
CELERY_BROKER_CONNECTION_RETRY_ON_STARTUP = True
CELERY_BROKER_URL = 'amqp://guest:guest@localhost:5672'
- Додати tasks.py в ваш додаток
from celery import shared_task
@shared_task
def test_task():
print("!!! Celery працює! Завдання виконано успішно !!!")
return "Успіх"
Запуск Celery і Rabbit MQ
celery -A projectcore worker --loglevel=info --pool=solo
змініть projectcore на ім'я вашого додатка
Тестування налаштувань
Запустіть у терміналі
py manage.py bash
from myapp.tasks import test_tasks
test_tasks.delay()
Ви повинні побачити «Успіх» у журналі Celery.
Висновок:
Якщо вам сподобалася ця стаття та була корисною, будь ласка, поставте лайк і підпишіться, щоб отримувати більше таких матеріалів. Я з радістю почую ваші коментарі та досвід роботи з Django і RabbitMQ, не соромтеся поділитися ними нижче для подальшого обговорення.
Перекладено з: Setting Up a task Queue using Celery and RabbitMQ WITH DJANGO