3

我正在尝试调试 celery 任务,但是当我 telnet 时参数和局部变量不存在:

from celery import Celery
from celery.contrib import rdb

celery = Celery('tasks', broker="redis://localhost:6379/0")

@celery.task
def add(x, y):
  someVar = 3
  rdb.set_trace()

在不同的终端:

telnet 127.0.0.1 6902(或任何端口号)

xy并且someVar都会产生一个名称错误,例如:NameError: name 'x' is not defined

4

1 回答 1

2

要检查您是否在当前堆栈帧中,请使用uand d(上下)上下移动(http://docs.python.org/2/library/pdb.html#debugger-commands

你可以看到你所在的文件(它写在 pdb 提示符中)。根据我的经验,通常你必须上去一两次才能找到正确的文件

于 2013-04-03T16:51:29.053 回答