remote debugging celery pycharm

debugging - remote - ¿Cómo habilito la depuración remota de apio en PyCharm?



pycharm remote execution (5)

Desafortunadamente, la mayoría de las soluciones no funcionan en Windows. (Hubo una pregunta separada específicamente sobre eso, pero desafortunadamente se cerró como un duplicado de esta. Así que responderé esa pregunta aquí ahora).

El problema es que en Windows, el comando de apio independiente es un archivo por lotes, por lo que PyCharm no puede adjuntar el depurador de Python.

Hasta que manage.py Celery 3.x, puede crear una configuración de ejecución manage.py y llamar al comando celery worker .

Tenga en cuenta que no necesita configurar --app aquí, ya que la aplicación está definida por el comando de administración a través de DJANGO_SETTINGS_MODULE .

Desafortunadamente, el comando de administración de celery era una característica de la biblioteca django-celery , que no es compatible con Celery 4.x. Hasta el momento, no he encontrado una solución para Celery 4.x.

Estoy tratando de encontrar algunas instrucciones sobre cómo habilitar la depuración de PyCharm dentro de mis procesos de apio en una máquina remota. La máquina remota está ejecutando Ubuntu 14.04.

Estoy ejecutando PyCharm 4.x.

He visto otra información que alude a otros que la tienen funcionando, pero no he podido encontrar ninguna instrucción adecuada.


Estoy usando PyCharm 2017 y tuve que hacer algo muy similar a las respuestas anteriores, pero específicamente tuve que poner el apodo completo / absoluto en el campo "Script"

Además, no estoy seguro de si PyCharm 4 tiene esta característica, pero las versiones más nuevas le permiten adjuntar directamente a un proceso en ejecución de Python yendo a Ejecutar> Adjuntar al proceso local ...

Esto le permite ejecutar el apio como lo hizo antes (en la terminal, tal vez) y luego permitir que Pycharm se haga cargo.


Mi configuración de trabajo:

  • Script: /home/app/env/bin/celery
  • Parámetros del script: worker -B -n qrc -Q qrc -l info --app=backend.celery

    • Donde -B es para celerybeet, -n es el nombre del nodo, -Q es el nombre de la cola, -l es el nivel de registro y --app es el nombre de la aplicación, una aplicación de django con celery.py junto a settings.py en mi caso.
  • Directorio de trabajo: /home/app/server/ ie mi carpeta raíz de django


Solo agrega la siguiente configuración:

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

Hacerlo hace que apio se ejecute en el mismo hilo que el hilo que se está ejecutando actualmente.


Puede tener una Run Configuration de ejecución para ejecutar sus trabajadores de celery que luego le permite depurar simplemente haciendo clic en el botón de debug . Aquí es cómo configuré eso en PyCharm 5:

Necesitas configurar un intérprete de python remoto y luego configurar otras configuraciones como la imagen de arriba. Tenga en cuenta que el Working directory está apuntando a la carpeta bin del intérprete remoto con el celery instalado.