如何从 Apache Airflow 调用外部服务器(在每个 DAG 运行 之后)
How to call an external server from Apache Airflow ( just after every DAG run )
我是 airflow 的新手,我想在每次 DAG 运行 成功完成时调用外部许可服务器。
Airflow 中没有“成功完成”事件。您可以为“开始前”事件添加集群策略 - https://airflow.apache.org/docs/apache-airflow/stable/concepts/cluster-policies.html(对于 DAG 和任务。
我认为确保它有效的唯一方法是将任务作为 DAG 中的“最后”步骤(当所有其他步骤都成功时)并设置“on_success_callback”。
如果您愿意,可能无法自动添加此类任务。
您可以尝试为此使用“任务实例突变”,但我认为您不能更改回调,并且您必须知道您需要以某种方式突变哪个任务。
如果您想以某种方式“强制”此类任务和回调的存在,您可以做一件事,您可以添加可以读取您的 DAG 和检查这样的任务是否存在(并且不允许 DAG 在没有它的情况下 运行)。但我认为这有点复杂。
我是 airflow 的新手,我想在每次 DAG 运行 成功完成时调用外部许可服务器。
Airflow 中没有“成功完成”事件。您可以为“开始前”事件添加集群策略 - https://airflow.apache.org/docs/apache-airflow/stable/concepts/cluster-policies.html(对于 DAG 和任务。
我认为确保它有效的唯一方法是将任务作为 DAG 中的“最后”步骤(当所有其他步骤都成功时)并设置“on_success_callback”。
如果您愿意,可能无法自动添加此类任务。
您可以尝试为此使用“任务实例突变”,但我认为您不能更改回调,并且您必须知道您需要以某种方式突变哪个任务。
如果您想以某种方式“强制”此类任务和回调的存在,您可以做一件事,您可以添加可以读取您的 DAG 和检查这样的任务是否存在(并且不允许 DAG 在没有它的情况下 运行)。但我认为这有点复杂。