我有一个DAG,它需要很长时间才能执行bigquery操作。而且我总是收到错误消息:“损坏的DAG:[/ home / airflow / gcs / dags / xyz.py]超时” 我找到了一些答案,说我们必须增加airflow.cfg的超时时间。但是这个想法不适合我的项目。是否有可能以某种方式增加特定DAG的超时时间?有人请帮忙。谢谢。
答案 0 :(得分:2)
是的,您可以在Dag上设置dagrun_timeout
参数。
指定DagRun应该运行多长时间 超时/失败,以便可以创建新的DagRun。超时时间 仅针对预定的DagRun实施,并且仅在 活动DagRun的数量== max_active_runs。
我们在每个可以设置的任务上都有一个参数execution_timeout
。
execution_timeout:执行以下操作的最长时间 此任务实例,如果超出范围,它将引发并失败。 :type execute_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)