dagrun_timeout 在回填/清除旧的 DAG 时会产生干扰吗?
Does dagrun_timeout interfere when backfilling / clearing old DAGs?
我有一个如下所示的 DAG,dagrun_timeout
设置为 4 小时。当我转到UI并清除从start_date到present的所有任务时,所有DAG都设置为运行状态。
4 小时后,任何未将自身标记为成功的 DAG 都将标记为失败,即使它们尚未实际启动也是如此。我想知道这是否是预期的行为。
如果我想以这种方式重新运行 DAG,是否应该删除 dagrun_timeout
并在任务级别设置超时?或者,如果我想在没有 dagrun_timeout
干扰的情况下重新运行所有 DAG,我应该使用 airflow backfill
吗?
理想情况下,我希望能够使用 UI,因为其他团队成员会想要重新运行 DAG。
default_args = {
'owner': 'airflow',
'depends_on_past': False,
'start_date': datetime(2019, 5, 1),
'email': ['lol@example.com'],
'email_on_failure': True,
'email_on_retry': False,
'retries': 1,
'retry_delay': timedelta(minutes=1),
}
dag = DAG(
dag_id='example_dag',
default_args=default_args,
max_active_runs=8,
schedule_interval='15 * * * *',
dagrun_timeout=timedelta(minutes=60*4),
)
我认为这是预期的行为,但只是一个误导性的参数名称。之前已经在邮件列表上讨论过,参见https://lists.apache.org/thread.html/7bda30f518bedbaaa763ba73a5e3bbe386cb0d090834c819f81c65ec@%3Cdev.airflow.apache.org%3E。
将超时转移到任务级别是一个公平的选择,只是理解它会有点不同,因为您可能想要为每个任务确定一个合理的超时。如果在普通 (non-backfill) 场景中 DAG 运行时间超过 4 小时时提醒您至关重要,那么我会在所有任务上添加 4 小时 SLA。当您清除回填任务时,它会立即触发 SLA 未命中,但至少它们应该全部同时批量发生并且不会使您的运行失败。
我遇到了同样的问题。只需删除 dagrun_timeout
参数即可。重新 运行 任务将 运行 正常。
我有一个如下所示的 DAG,dagrun_timeout
设置为 4 小时。当我转到UI并清除从start_date到present的所有任务时,所有DAG都设置为运行状态。
4 小时后,任何未将自身标记为成功的 DAG 都将标记为失败,即使它们尚未实际启动也是如此。我想知道这是否是预期的行为。
如果我想以这种方式重新运行 DAG,是否应该删除 dagrun_timeout
并在任务级别设置超时?或者,如果我想在没有 dagrun_timeout
干扰的情况下重新运行所有 DAG,我应该使用 airflow backfill
吗?
理想情况下,我希望能够使用 UI,因为其他团队成员会想要重新运行 DAG。
default_args = {
'owner': 'airflow',
'depends_on_past': False,
'start_date': datetime(2019, 5, 1),
'email': ['lol@example.com'],
'email_on_failure': True,
'email_on_retry': False,
'retries': 1,
'retry_delay': timedelta(minutes=1),
}
dag = DAG(
dag_id='example_dag',
default_args=default_args,
max_active_runs=8,
schedule_interval='15 * * * *',
dagrun_timeout=timedelta(minutes=60*4),
)
我认为这是预期的行为,但只是一个误导性的参数名称。之前已经在邮件列表上讨论过,参见https://lists.apache.org/thread.html/7bda30f518bedbaaa763ba73a5e3bbe386cb0d090834c819f81c65ec@%3Cdev.airflow.apache.org%3E。
将超时转移到任务级别是一个公平的选择,只是理解它会有点不同,因为您可能想要为每个任务确定一个合理的超时。如果在普通 (non-backfill) 场景中 DAG 运行时间超过 4 小时时提醒您至关重要,那么我会在所有任务上添加 4 小时 SLA。当您清除回填任务时,它会立即触发 SLA 未命中,但至少它们应该全部同时批量发生并且不会使您的运行失败。
我遇到了同样的问题。只需删除 dagrun_timeout
参数即可。重新 运行 任务将 运行 正常。