私は、実行する一連のタスクを作成するアプリケーションを作成していますが、チェーンは、そのピースが追加されるというユーザーの希望に応じてタスクを実行します。ユーザーがstart_boo
したい場合セロリで条件付きサブタスクのチェーンを作成するにはどうすればよいですか?
例えば、チェーンは次のようになります。foo
とbaz
がすでに開始されている場合
def start_boo():
chain = start_foo.s() | start_bar.s() | start_baz.s()
chain()
しかし、我々はこれを行うにはしたくないでしょう。代わりに次のようなものを好む:
def start_boo(foo=True, bar=True, baz=True):
if not (foo or bar or baz):
raise Exception("At least one should be true...")
chain = None
if foo:
chain |= start_foo.s()
if bar:
chain |= start_bar.s()
if baz:
chain |= start_baz.s()
chain()
start_boo(foo=False, baz=False)
ただし、これはさまざまな理由で機能しません。
このようなことを行うイディオムはありますか?
これは私の目標、私の理解、そして私の試みではかなり有効な質問です。私は質問をより良くすることができるようにdownvotesを説明してください。 – erip