Как подключить celery к redis который в docker контейнере?

Для подключения Celery к Redis в Docker контейнере, следуйте следующим шагам:

  1. Установите Docker на свою систему и убедитесь, что он работает корректно.
  1. Создайте Docker контейнер для Redis, используя официальный образ Redis из Docker Hub. Вы можете создать контейнер с помощью следующей команды:
   docker run -d --name redis-container redis

Эта команда создаст и запустит Docker контейнер с именем "redis-container", используя образ Redis.

  1. Проверьте, что контейнер Redis успешно запущен, выполнив команду:
   docker ps

Вы должны увидеть контейнер Redis, который работает без ошибок.

  1. Установите Celery и его зависимости в своем проекте Python. Вы можете установить их с помощью pip:
   pip install celery redis

Эта команда установит Celery и Redis, необходимые для взаимодействия с Redis.

  1. Создайте файл конфигурации для Celery, например, "celeryconfig.py", и настройте параметры подключения к Redis. В файле конфигурации укажите следующую конфигурацию Redis:
   BROKER_URL = 'redis://localhost:6379/0'

В этом примере мы указываем, что Redis находится на локальной машине, работает на порту 6379 и использует базу данных с номером 0. Вы можете настроить эти параметры в зависимости от вашей конфигурации Redis.

  1. Создайте файл сценария запуска 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".

  1. Запустите рабочий процесс Celery с помощью следующей команды:
   celery -A celery_worker:app worker --loglevel=info

Эта команда запустит рабочий процесс Celery с указанным модулем (celery_worker) и экземпляром приложения (app). Он будет производить вывод журнала на уровне info.

Теперь Celery будет подключаться к Redis, который запущен в Docker контейнере. Вы можете отправлять задачи в Celery и управлять ими с помощью Redis.

Обратите внимание, что в приведенном выше примере Redis настроен на использование локального хоста и порта по умолчанию. Если ваш Redis запущен на другом хосте или порту, вам нужно будет изменить соответствующие параметры в файле конфигурации Celery и убедиться, что Celery может достичь Redis.