trigger_rule.TriggerRule 使用气流

trigger_rule.TriggerRule utils airflow

我有一个问题,但我没有找到任何相关信息。

使用 'airflow.utils.trigger_rule' 或仅用字符串声明 trigger_rule 有什么区别,我留下两个例子。

显然 airflow.utils.trigger_rule 还有其他实用程序,但我还不了解它们

           delete_bq_table = bash_operator.BashOperator(
            task_id='delete_bq_table',
            bash_command='bq rm -f %s' % bq_dataset_name + '.' +inst_dag_id,
            trigger_rule=trigger_rule.TriggerRule.ALL_DONE
        )

           delete_bq_table = bash_operator.BashOperator(
            task_id='delete_bq_table',
            bash_command='bq rm -f %s' % bq_dataset_name + '.' +inst_dag_id,
            trigger_rule='all_done'
        )

没有区别。您可以使用任何您喜欢的选项。 我个人更喜欢使用:

from airflow.utils.trigger_rule import TriggerRule

然后 TriggerRule.ALL_DONE 只是因为它避免了语法错误,因为它在 IDE.

中提供了自动完成功能

A​​irflow 正在转换 TriggerRule class to inherit from Enum (see Github issue)