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...
3条答案
按热度按时间p8ekf7hl1#
当Celery实际执行任务时,任务由不同的Python进程处理。根据你的配置方式,这些独立的进程可能无法访问你的控制台。相反,它们会写入Celery的日志文件(可以用各种方式配置)。找到那个文件,你就会看到任务的打印输出。
所有这些都假设您确实已经重新启动了celery 工人,正如Gaurav Tomer的评论所建议的那样。
lsmepo6l2#
对于调试celery :
运行后,您将看到以下日志:
您需要telnet到端口如下:
现在你可以调试你的任务了。更多细节在celery中。
jdzmm42g3#
对于Windows,请使用以下命令
使用以下命令重新启动Celepie Worker