我需要从 Eclipse 调试器调试 Celery 任务。我正在使用 Eclipse、PyDev 和 Django。
首先,我在 Eclipse 中打开我的项目,并在任务函数的开头放置一个断点。
然后,我通过右键单击 PyDev 包资源管理器中的 manage.py 并选择“Debug As->Python Run”并指定“celeryd -l info”作为参数,从 Eclipse 启动 Celery 工作人员。这将启动 MainThread、Mediator 和另外三个从 Eclipse 调试器可见的线程。
之后,我返回 PyDev 视图并通过右键单击项目并选择 Run As/PyDev:Django 启动主应用程序
我的问题是,一旦 mytask.delay() 提交了任务,它就不会在断点处停止。我在任务代码中添加了一些痕迹,因此我可以看到它是在其中一个工作线程中执行的。
那么,当它在 Celery 工作线程中执行时,如何使 Eclipse 调试器停止在任务所在的断点处?