Как кэшировать / таргетировать задачи с тем же именем в потоке с префектом?

Я пытаюсь найти target шаблон или конфигурацию кеша, чтобы различать задачи с одинаковыми именами в потоке.

Как показано на диаграмме выше, только одна из задач кэшируется, а другая перезаписывается. Я пробовал использоватьtask-slug но безрезультатно.

@task(
    name="process_resource-{task_slug}",
    log_stdout=True,
    target=task_target
    )

заранее спасибо

2 ответа

Решение

Похоже, вы пытаетесь отформатировать имя задачи вместо цели. (имена задач не являются строками, поддерживающими шаблоны).

Вероятно, вам нужен следующий фрагмент:

@task(name="process_resource", log_stdout=True, target="{task_name}-{task_slug}")

После дальнейшего исследования оказалось, что документация напрямую касается изменения конфигурации задачи на лету - без нарушения шаблонов целевого местоположения.

@task
def number_task():
    return 42

with Flow("example-v3") as f:
    result = number_task(task_args={"name": "new-name"})

print(f.tasks) # {<Task: new-name>}
Другие вопросы по тегам