2015-03-28 3 views
14

Я пытаюсь найти некоторые инструкции о том, как включить отладку PyCharm в моих процессах сельдерея на удаленной машине. На удаленном компьютере работает Ubuntu 14.04.Как включить удаленную отладку сельдерея в PyCharm?

Я запускаю PyCharm 4.x.

Я видел другую информацию, которая ссылается на других, что она работает, но не могла найти правильные инструкции.

ответ

20

Для того, чтобы начать работать celery, вы можете связаться с Run Configuration, который затем позволяет вам легко отладить, нажав кнопку debug. Вот как я установил, что в PyCharm 5:

pycharm celery

Вам необходимо установить интерпретатор удаленного питона, а затем установить другие конфиги, как на картинке выше. Обратите внимание, что Working directory указывает на папку bin удаленного интерпретатора с установленным celery.

5

Просто добавьте следующий конфиг:

from celery import current_app 
current_app.conf.CELERY_ALWAYS_EAGER = True 
current_app.conf.CELERY_EAGER_PROPAGATES_EXCEPTIONS = True 

Это делает сельдерей выполнять в том же потоке, как в данный момент выполняющегося потока.

0

Моя рабочая конфигурация:

  • Сценарий: /home/app/env/bin/celery
  • Сценарий параметры: worker -B -n qrc -Q qrc -l info --app=backend.celery

    • Где -B для celerybeet, -n это имя узла, -Q это имя очереди, -l - это уровень журнала, d --app - это имя приложения, приложение django с celery.py рядом с settings.py в моем случае.
  • Рабочего каталог: /home/app/server/ т.е. моего Джанго корневой папки

0

К сожалению, большинство решений не работают на Windows. (Это был separate question, но, к сожалению, он был закрыт, как дубликат этого. Поэтому я сейчас отвечу на этот вопрос.)

Проблема в том, что в Windows отдельная команда сельдерея является пакетной файл, поэтому PyCharm не может подключить к нему отладчик Python.

До создания сельдерея 3.x вы можете создать конфигурацию запуска manage.py и вызвать команду celery worker.

Screenshot of PyCharm run configuration for running manage.py celery worker

Обратите внимание, что вам не нужно устанавливать --app здесь, как приложение определяется командой управления через DJANGO_SETTINGS_MODULE.

К сожалению, команда управления celery была функцией библиотеки django-celery, которая не поддерживается Celery 4.x. На данный момент я не нашел решение для Celery 4.x.

Смежные вопросы