6

中間のサブタスクが例外をスローした後、 immutable=Trueサブタスクでチェーンを実行し続ける方法を見つける必要があります。

私はすでにこのスレッドとこの問題のコメントを読みました。これらのバグは修正されましたが、反対の動作を実装する必要があります。チェーンの実行を停止する必要はありません。独立したタスクのリストを、それらの間で結果を送信せずに任意の順序で次々に実行する別の方法があるかもしれませんか?この場合、django-celeryはすべてのタスクに関する統計を保存するため、非同期で実行する必要があります。

1つの解決策は、すべてのサブタスクの本体を次のようにカバーすることです。

try:
    ...
except Exception, e:
    logger.error('Exception raised: %s' % e)
    raise e

ただし、この場合、すべてのサブタスクはSUCCESSステータスで実行され、 django-celery管理インターフェースでの例外のトレースバックは役に立ちません。

4

1 に答える 1

0

コードとCELERY_CHORD_PROPAGATESを使用したPerharps

したがって、Chordのサブパートに障害が発生した場合、Exceptionを管理し、それを使用して必要な処理を実行できます(何かをログに記録したり、実行を変更するためにタスクを再キューイングしたりできます)。

すでにチェーンを持っているので、コードはその一部にすぎず、ステータスを知るために必要なタスクがあります。

于 2013-03-20T07:45:47.343 に答える