[英]How do I enable remote celery debugging in PyCharm?
我正在尝试查找有关如何在远程机器上的 celery 进程中启用 PyCharm 调试的说明。 远程机器正在运行 Ubuntu 14.04。
我正在运行 PyCharm 4.x。
我已经看到一些其他信息暗示其他人可以使用它,但无法找到任何正确的说明。
只需添加以下配置:
from celery import current_app
current_app.conf.CELERY_ALWAYS_EAGER = True
current_app.conf.CELERY_EAGER_PROPAGATES_EXCEPTIONS = True
这样做会使 celery 在与当前正在执行的线程相同的线程中执行。
不幸的是,大多数解决方案在 Windows 上不起作用。 (有一个专门关于此的单独问题,但不幸的是它作为这个问题的副本而关闭。所以我现在将在这里回答这个问题。)
问题是在 Windows 上,独立的 celery 命令是一个批处理文件,因此 PyCharm 无法将 Python 调试器附加到它。
在 Celery 3.x 之前,您可以创建一个manage.py
运行配置并在其上调用celery worker
命令。
请注意,您无需在此处设置--app
,因为应用程序是由管理命令通过DJANGO_SETTINGS_MODULE
定义的。
不幸的是, celery
管理命令是django-celery
库的一个特性,Celery 4.x 不支持它。 到目前为止,我还没有找到 Celery 4.x 的解决方案。
我正在使用 PyCharm 2017 并且必须做一些与上面的答案非常相似的事情,但我特别必须在“脚本”字段中将完整/绝对路径名放入celery
另外,我不确定 PyCharm 4 是否具有此功能,但较新的版本允许您通过转到运行 > 附加到本地进程来直接附加到正在运行的 python 进程...
这允许您以之前的方式运行 celery(可能在终端中)然后允许 Pycharm 接管
在 Windows 中,在 Pycharm 的调试配置中添加以下参数
-A YouAppName worker --loglevel=debug -P solo --without-gossip --without-mingle --without-heartbeat
如果您正在为 Celery 使用 Gevent,请不要忘记选中Preferences > Build, Execution, Deployment > Python Debugger > Gevent Compatible
复选框。
我的工作配置:
/home/app/env/bin/celery
脚本参数: worker -B -n qrc -Q qrc -l info --app=backend.celery
-B
用于 celerybeet, -n
是节点名称, -Q
是队列名称, -l
是日志级别,-- --app
是应用程序名称,在我的例子中,一个 celery.py 与 settings.py 相邻的 Django 应用程序。 工作目录: /home/app/server/
即我的 django 根文件夹
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.