为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

明月笑刀无情 2022-07-05 19:23:28
使用 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,则所有任务都将在本地执行,而不将其发送到队列。



查看完整回答
反对 回复 2022-07-05
?
繁花如伊

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

现在您处于调试模式。


查看完整回答
反对 回复 2022-07-05
?
蛊毒传说

TA贡献1895条经验 获得超3个赞

Telnet 解决方案对我不起作用。但我能够使用pdb.

添加断点:pdb.set_trace().

然后只需运行 worker -l warning,它将防止打印过多的信息。


查看完整回答
反对 回复 2022-07-05
  • 3 回答
  • 0 关注
  • 152 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信