打印芹菜任务中的语句不起作用



我需要调试celery任务以查看它是否正常工作,所以我在tasks.py里面放了一些print语句。在运行项目时,我观察到任务成功运行,但没有在控制台上打印任何内容。如何调试芹菜任务。

当 Celery 实际完成工作时,任务由不同的 Python 进程处理。根据配置方式,这些单独的进程可能无法访问您的控制台。相反,他们将写入 Celery 的日志文件(可以通过各种方式进行配置(。找到该文件,您将看到任务的打印输出。

所有这些都假设你确实重新启动了芹菜工人,正如Gaurav Tomer的评论所暗示的那样。

对于调试芹菜:

from celery import task
from celery.contrib import rdb
@task()
def add(x, y):
result = x + y
rdb.set_trace()  # <- set break-point
return result

运行后,您将看到以下日志:

[INFO/MainProcess] Received task:
tasks.add[d7261c71-4962-47e5-b342-2448bedd20e8]
[WARNING/PoolWorker-1] Remote Debugger:6900:
Please telnet 127.0.0.1 6900.  Type `exit` in session to continue.
[2011-01-18 14:25:44,119: WARNING/PoolWorker-1] Remote Debugger:6900:
Waiting for client...

您需要远程登录到端口,如下所示:

telnet localhost 6900

现在,您可以调试任务。 芹菜中的更多详细信息。

对于 Windows,请使用命令

celery -A <project_name>.celery worker --pool=solo -l INFO

使用该命令重新启动芹菜工作线程

相关内容

  • 没有找到相关文章

最新更新