气流集群策略未生效

时间:2018-07-29 05:03:40

标签: airflow airflow-scheduler

我正在尝试在Airflow 1.9中使用群集策略。我按照官方文档中的说明进行操作,但似乎没有生效。

在我的文件$AIRFLOW_HOME/config/airflow_local_settings.py中,我已按照文档中的说明定义了该方法,并具有以下签名:

def policy(task_instance):

其他问题:

  • 什么气流组件实际上在运行策略代码(是调度程序)?
  • 是否有推荐的方法对集群策略代码进行单元测试?如果没有,那么本地测试呢?

谁能帮助我了解为什么该群集策略未生效?

我正在使用Airflow 1.9。

1 个答案:

答案 0 :(得分:0)

因此,根据以下文件,您似乎将文件放在正确的位置:https://github.com/apache/airflow/blob/master/docs/concepts.rst#where-to-put-airflow_local_settingspy

您的签名是正确的:https://airflow.apache.org/docs/stable/concepts.html#mutate-tasks-after-dag-loaded

但是您尚未显示所做的工作以及该“没有工作”的方式。

我相信def policy(task):签名是在DAG解析后(如文档所示)在调度程序上运行的,而def task_instance_mutation_hook(ti):签名是由工作程序上的任务执行者运行的。这可能就是为什么您看不到需要进行一些更改的原因。

EG timeoutqueue是调度程序强制执行的内容,而connection ID是工作人员在执行过程中需要了解的内容。

因此,如果您要工作的是超时策略,则应该有超时策略,但是,如果您要工作的是执行连接ID,那就没有了。