我在主Dag中创建了4个SubDags,它们将在不同的schedule_interval上运行。我删除了一个SubDag的操作,但它仍然出现在Airflow的数据库中。数据库中的那个条目会执行吗?有没有办法从Airflow的数据库中删除它?
答案 0 :(得分:0)
记录将保留在数据库中,但是如果DAG实际上不存在于调度程序中(并且工作人员取决于您的执行者),则不能将其添加到DagBag并赢得“DagBag”。运行。
查看调度程序所做的simplified scheduler:
def _do_dags(self, dagbag, dags, tis_out):
"""
Iterates over the dags and schedules and processes them
"""
for dag in dags:
self.logger.debug("Scheduling {}".format(dag.dag_id))
dag = dagbag.get_dag(dag.dag_id)
if not dag:
continue
try:
self.schedule_dag(dag)
self.process_dag(dag, tis_out)
self.manage_slas(dag)
except Exception as e:
self.logger.exception(e)
调度程序将在对DagBag进行任何处理之前检查dag是否包含在DagBag中。 DAG的条目保存在数据库中,以保留将来重新添加日期时已处理日期的历史记录。但是对于所有意图和目的,您可以将丢失的DAG视为暂停的DAG。