The graph is derived from a parameter , and thus seems unchanged at runtime.
Perhaps you can accomplish what you are looking for using Task ETAs . This ensures that your task will not be completed until the desired time, but does not promise to start the task at the appointed time - if workers are overloaded in the designated ETA, the task can work later.
If this restriction is not a problem, you can write a task that first starts as:
@task
def mytask():
keep_running =
if keep_running:
run_again =
mytask.apply_async(eta=run_again)
The main disadvantage of this approach is that you rely on the store to remember about the tasks in flight. If one of them fails and then turns off, then the task will never start again. If your broker is not saved to disk and he dies (taking all the tasks in flight with him), then none of these tasks will start again.
- "", , .
, , , .