我们业务中有很多耗时任务放在了 Airflow 上,这些任务类型包括由 Web 后端触发调起 Airflow 上的任务,还有一些定时任务,按照配置好的时间规则定时执行一些业务功能,但是我们负责多个项目,每个项目都有几个相同的定时任务,只是数据库连接接等配置信息不一样,其他的业务代码逻辑都是一样的,最后的期望是每新增一个项目需要使用相同的任务只需要进行一个简单的配置就可以,不用拷贝一份 Python 代码。
发现 Airflow 提供了 Variables 这个功能,它是用来存储一些变量信息,在Web 页面配置好 Variables 变量的值,在 Dag 代码中就可以直接获取配置的变量信息。每次新增一个项目只需要增加 Variables 里对应的配置信息就可以了,这样使用起来就比较简洁优雅。
Variables 是一个全局的通用键/值存储,它的格式是 Key-Value。Key 是Variable 的名字,Value 是Variable的值,可以是普通的字符串,也可以是 Json 格式的字符串。
使用的时候先进行一个 Variable 导入,使用 get 获取指定 key 的值,设置 deserialize_json = True 可以将获取的值转成 json 对象。
总体来说 Variable 提供的功能很实用,代码中的固定变量可以放到 Variable 中进行管理
本文分享自 pythonista的日常 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!