使用 Django 1.8,我曾经Django-celery运行异步任务,并且能够在我的 IDE(PyCharm 或 Eclipse+PyDev)中调试它们,只需在调试模式下启动“python celery worker”。Django-celery不支持 Django 2.2,所以我必须运行纯 celery.exe。Celery 文档说我必须添加pdb到我的代码中并通过控制台运行调试。如何像以前一样调试这些任务,从我的 IDE 动态添加断点?
3 回答
慕勒3428872
TA贡献1848条经验 获得超6个赞
您可以CELERY_ALWAYS_EAGER = True
在开发环境中使用设置。如果为 True,则所有任务都将在本地执行,而不将其发送到队列。
繁花如伊
TA贡献2012条经验 获得超12个赞
您可以使用celery.contrib.rdb,它是 pdb 的扩展。
from celery.contrib import rdb
from celery.task import task
@task
def add(x,y):
result=× + y
rdb.set_trace() #set breakpoint
return x+y
打开下一个终端并输入
telnet localhost 6900
现在您处于调试模式。
蛊毒传说
TA贡献1895条经验 获得超3个赞
Telnet 解决方案对我不起作用。但我能够使用pdb
.
添加断点:pdb.set_trace()
.
然后只需运行 worker -l warning
,它将防止打印过多的信息。
添加回答
举报
0/150
提交
取消