1

我是初学者。我在 Celery 中运行一个任务并收到这个奇怪的错误

调用 Python 对象时超出最大递归深度

您可以在此 pastebin中检查完整错误

我不太明白,因为我没有改变任何东西,昨天它工作正常。我在 python 解释器中运行了没有芹菜的任务,它运行良好。您可以在此处检查功能。最后,值得一提的是,这个任务被另一个任务创建了 12 次。

您是否看到任何可能导致此类错误的内容?

编辑:

这就是我称之为函数/任务的任务

@celery.task(ignore_result=True)
def get_classicdata(leagueid):
    print "getting team data for %s"%leagueid
    returned_data = {}
    for team in r.smembers('league:%s'%leagueid):
        data = scrapteam.delay(team,r.get('currentgw'))
        returned_data[team] = data.get()
4

1 回答 1

2

一切看起来都很好。回溯暗示某处返回的对象无法腌制,但您返回的“团队”数据结构是一个字典,其中包含基本类型的非递归数据结构,因此不会导致问题。为了更好的远程调试,请在“返回团队”前加上打印语句,以便显示团队的内容。您也可以尝试让它返回一个 {} 并查看这是否会改变事情。

然后还在 get_classicdata 中添加一个调试打印语句,显示 data.get() 的内容,以及返回之前的内容,以验证该函数是否完成。

于 2012-11-25T19:55:55.500 回答