Запретить Планировщику запускать перекрывающуюся задачу

airflow.cfg:

# airflow version = 1.10.1
executor = LocalExecutor
parallelism = 32
dag_concurrency = 16

И dag.py:

with DAG('mydag', schedule_interval="@hourly") as dag:
    # define tasks

Но иногда моя задача выполняется дольше, чем моя schedule_interval, и airflow планирует следующую задачу до того, как будет выполнена предыдущая.

Это вызывает всевозможные ужасные условия гонки.

Есть ли способ явно запретить планирование перекрывающихся задач? Даже если это означает полный пропуск пробежки?


person Roman    schedule 26.07.2019    source источник


Ответы (1)



EDIT-1

обновлено в соответствии с комментарием @Chengzhi< /а>

Хотя приведенное выше, вероятно, решит ваши проблемы, если вы хотите полностью пропустить перекрывающиеся DagRuns, используйте

person y2k-shubham    schedule 27.07.2019
comment
чтобы добавить к точке @y2k-shubham: max_active_runs_per_dag используется по умолчанию для всех дагов, если вы хотите сделать это для определенного дага, переопределите его на уровне DAG (github.com/apache/airflow/blob/v1-10-stable/airflow/models/) , также, если вы не слишком заботитесь о каждом dag_run, установите для catchup значение False, чтобы избежать обратного давления каждого триггера. - person Chengzhi; 27.07.2019