1

私は初心者です。セロリでタスクを実行していて、この奇妙なエラーが発生しています

Python オブジェクトの呼び出し中に最大再帰深度を超えました

このペーストビンで完全なエラーを確認できます

何も変更していないのでよくわかりませんが、昨日は問題なく動作していました。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

すべてがうまく見えます。トレースバックは、返されたオブジェクトをピクルできないことを意味しますが、返された「チーム」データ構造は基本型の非再帰データ構造を含む辞書であるため、問題は発生しません。リモート デバッグを改善するには、チームの内容が表示されるように、「チームを返す」の前に print ステートメントを配置してください。また、{} を返すようにしてみて、状況が変わるかどうかを確認することもできます。

次に、関数が完了したかどうかを確認するために、data.get() の内容とそこに戻る直前の何かを示す get_classicdata にデバッグ用の print ステートメントも追加します。

于 2012-11-25T19:55:55.500 に答える