@AntonIgin

Как запускать Celery сразу с учетом виртуального окружения?

Проблема следующая: когда запускаю воркер просто в консоли, многие таски не отображаются, т.к. имеют зависимости с пакетами, не установленными за пределами определенного виртуального окружения. Но стоит к нему подключиться и попробовать еще раз, проблема исправляется.

Как избежать этой проблемы в продакшене? Ставить все пакеты на систему, то есть вообще отказываться виртуального окружения, не хочу. Какие варианты?
  • Вопрос задан
  • 304 просмотра
Решения вопроса 1
Assargin
@Assargin
Перед ответом смотрю наличие ✔ в ваших вопросах
Ну так, у вас в проекте, наверное, есть файл с зависимостями. requirements.txt, например. Где помимо прочих зависимостей, также должен быть прописан сельдерей нужной версии:
..
celery==X.Y.Z 
..

На проде одним из шагов вашего процесса релиза, наверное, является установка/обновление этих зависимостей:
pip install -r /path/to/requirements.txt
Следовательно, вы имеете в вашем venv'е установленный celery. Наверное.
Ну и просто запускайте его оттуда, и всего делов. Тем же способом можно, просто путь до исполняемого файла будет указывать внутрь вашего виртуального окружения с проектом, типа:
/path/to/virtualenv/bin/celery --params ....
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы