Для подключения Celery к Redis в Docker контейнере, следуйте следующим шагам:
1. Установите Docker на свою систему и убедитесь, что он работает корректно.
2. Создайте Docker контейнер для Redis, используя официальный образ Redis из Docker Hub. Вы можете создать контейнер с помощью следующей команды:
docker run -d --name redis-container redis
Эта команда создаст и запустит Docker контейнер с именем "redis-container", используя образ Redis.
3. Проверьте, что контейнер Redis успешно запущен, выполнив команду:
docker ps
Вы должны увидеть контейнер Redis, который работает без ошибок.
4. Установите Celery и его зависимости в своем проекте Python. Вы можете установить их с помощью pip:
pip install celery redis
Эта команда установит Celery и Redis, необходимые для взаимодействия с Redis.
5. Создайте файл конфигурации для Celery, например, "celeryconfig.py", и настройте параметры подключения к Redis. В файле конфигурации укажите следующую конфигурацию Redis:
BROKER_URL = 'redis://localhost:6379/0'
В этом примере мы указываем, что Redis находится на локальной машине, работает на порту 6379 и использует базу данных с номером 0. Вы можете настроить эти параметры в зависимости от вашей конфигурации Redis.
6. Создайте файл сценария запуска Celery, например, "celery_worker.py", в котором инициализируйте Celery и настройте его для работы с Redis. Например:
from celery import Celery app = Celery('myapp', broker='redis://localhost:6379/0') @app.task def add(x, y): return x + y
В этом примере мы создаем экземпляр Celery, указывая broker URI, соответствующий URL Redis, который мы настроили ранее в файле конфигурации. Мы также определяем простую задачу "add".
7. Запустите рабочий процесс Celery с помощью следующей команды:
celery -A celery_worker:app worker --loglevel=info
Эта команда запустит рабочий процесс Celery с указанным модулем (celery_worker
) и экземпляром приложения (app
). Он будет производить вывод журнала на уровне info
.
Теперь Celery будет подключаться к Redis, который запущен в Docker контейнере. Вы можете отправлять задачи в Celery и управлять ими с помощью Redis.
Обратите внимание, что в приведенном выше примере Redis настроен на использование локального хоста и порта по умолчанию. Если ваш Redis запущен на другом хосте или порту, вам нужно будет изменить соответствующие параметры в файле конфигурации Celery и убедиться, что Celery может достичь Redis.