Python中如何使用PyCharm断点调试Celery worker task

null
Python中如何使用PyCharm断点调试Celery worker task

6 回复

用调试模式启动 celery 的 worker


在PyCharm里调试Celery任务,关键是要让worker在调试模式下运行。我常用的方法是通过PyCharm的调试配置来启动worker。

首先,创建一个调试配置:

  1. 点击“Run” -> “Edit Configurations”
  2. 添加新的Python配置
  3. 在“Script path”里填上celery的执行路径,通常是-m celery
  4. 在“Parameters”里填上worker --app=your_app_module --loglevel=info

这样配置后,你可以在任务代码里设置断点,然后启动这个调试配置。worker就会在调试器控制下运行,当任务被执行时,断点就会生效。

如果你用的是Windows系统,可能需要加上--pool=solo参数,因为Celery的默认进程池在Windows上调试可能有问题。

另一个方法是直接在你的代码里启动worker,这样更容易控制:

if __name__ == '__main__':
    from celery import current_app
    current_app.start(argv=['worker', '--loglevel=info'])

然后在PyCharm里直接调试这个脚本文件。

调试远程任务的话,可以在任务代码里加上pydevd的调用,但这样需要先启动PyCharm的远程调试服务器。

总结:配置调试启动worker最直接。

“八荣八耻”

Guido 都用 PyCharm ,排斥 debugger 在现代的软件开发中简直是反智主义。

pycharm 调试大文件貌似有问题,不知道现在修复了没?

谢谢,已经搞定了~

回到顶部