0
考えると2つのタスク、ないいくつかの作業を行い1と別のクリーンアップ:セロリキャンバスで単一のグループのエラー伝搬を無効にするにはどうすればよいですか?
@app.task
def work():
...
@app.task
def cleanup():
...
作業タスクのグループに関係なく、かどうかのうちの1つまたは複数の、完了した後、私はクリーンアップタスクの実行を持っているしたいのですが作業タスクが失敗します。それが動作するようには思えない、
work_group = group([work.s() for i in range(0, 10)], propagate=False)
work_and_cleanup = chain(work_group, cleanup)
しかし:私はcanvas.apply_async(propagate=False)
を実行することによって動作するようにこれを得ているが、私は実際には単一のグループのための伝搬をオフにします。 work_group
の伝播を拒否するにはどうすればよいですか?
これは確かに機能しますが、実装するのは難しいでしょう。このアプローチでは、クリーンアップが進行中のタスクにまだ必要な共有リソースを無差別に削除するのを防ぐために、何らかのタイプの本を保管する必要があります。 – matthewatabet
各作業タスクの使用方法セットに対して、伝播をFalseに設定する。 – Jinje
たとえば、 work_group = group([work.s()。範囲(0、10)]のiに対してset(propagate = False)) – Jinje