【问题标题】:Increase timeout for a particular DAG in airflow增加气流中特定 DAG 的超时时间
【发布时间】:2019-09-06 22:46:16
【问题描述】:

我有一个 DAG,它需要很长时间才能执行 bigquery 操作。我总是收到错误'Broken DAG:[/home/airflow/gcs/dags/xyz.py] Timeout' 我发现一些答案说我们必须增加airflow.cfg 中的超时时间。但是这个想法不适合我的项目。是否有可能以某种方式增加特定 DAG 的超时时间?任何人请帮忙。谢谢你。

【问题讨论】:

  • 该错误消息暗示您的 Dag 定义文件的解析和执行时间过长,例如 this case。我发现airflow.cfg 中的相关设置是dagbag_import_timeout,默认为 30 秒

标签: airflow google-cloud-composer


【解决方案1】:

是的,您可以在 Dag 上设置 dagrun_timeout 参数。

指定 DagRun 应该在多长时间之前启动 超时/失败,以便可以创建新的 DagRuns。超时 仅对计划的 DagRuns 强制执行,并且仅在 # 活跃的 DagRuns == max_active_runs。

我们还有一个参数execution_timeout 可以设置在每个任务上。

execution_timeout:允许执行的最长时间 这个任务实例,如果它超出它将引发和失败。 :type execution_timeout: datetime.timedelta

因此,如果其中一项任务是在 BigQuery 上运行查询,您可以使用类似

BigQueryOperator(sql=sql,
    destination_dataset_table={{ params.t_name }}),
    task_id='bq_query',
    bigquery_conn_id='my_bq_connection',
    use_legacy_sql=False,
    write_disposition='WRITE_TRUNCATE',
    create_disposition='CREATE_IF_NEEDED',
    query_params={'t_name': table_name},
    execution_timeout=datetime.timedelta(minutes=10)
    dag=dag)

【讨论】:

  • 感谢您的回复。我会试试这个
  • 这没有按预期工作。当我添加这个时,超时错误不会出现。它显示 DAG 正在运行。但没有其他事情发生。有问题。
  • 它现在不工作了。状态总是显示为无状态
猜你喜欢
  • 1970-01-01
  • 2018-05-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-25
相关资源
最近更新 更多