我正在尝试在Airflow 1.9中使用群集策略。我按照官方文档中的说明进行操作,但似乎没有生效。
在我的文件$AIRFLOW_HOME/config/airflow_local_settings.py
中,我已按照文档中的说明定义了该方法,并具有以下签名:
def policy(task_instance):
其他问题:
谁能帮助我了解为什么该群集策略未生效?
我正在使用Airflow 1.9。
答案 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 timeout
或queue
是调度程序强制执行的内容,而connection ID
是工作人员在执行过程中需要了解的内容。
因此,如果您要工作的是超时策略,则应该有超时策略,但是,如果您要工作的是执行连接ID,那就没有了。