猿问

Windows 上的 Celery + Django:调试异步任务

使用 Django 1.8,我曾经Django-celery运行异步任务,并且能够在我的 IDE(PyCharm 或 Eclipse+PyDev)中调试它们,只需在调试模式下启动“python celery worker”。

Django-celery不支持 Django 2.2,所以我必须运行纯 celery.exe。Celery 文档说我必须添加pdb到我的代码中并通过控制台运行调试。

如何像以前一样调试这些任务,从我的 IDE 动态添加断点?


明月笑刀无情
浏览 153回答 3
3回答

慕勒3428872

您可以CELERY_ALWAYS_EAGER = True在开发环境中使用设置。如果为 True,则所有任务都将在本地执行,而不将其发送到队列。

繁花如伊

您可以使用celery.contrib.rdb,它是 pdb 的扩展。from celery.contrib import rdbfrom celery.task import task@taskdef add(x,y):    result=× + y    rdb.set_trace()  #set breakpoint    return x+y打开下一个终端并输入telnet localhost 6900现在您处于调试模式。

蛊毒传说

Telnet 解决方案对我不起作用。但我能够使用pdb.添加断点:pdb.set_trace().然后只需运行 worker -l warning,它将防止打印过多的信息。
随时随地看视频慕课网APP

相关分类

Python
我要回答