2017-10-12 MoreFreeze
最近发现 airflow 任务执行顺序有些奇怪,于是看了下 airflow 关于权重的处理,解答了心中的疑问。 以最新的稳定版(v1.8-stable)为例,代码总共就这么一小段 python @property def priority_weight_total(self): return sum([ t.priority_weight for t in self.get_flat_relatives(upstream=False) ]) + self.priority_weight 继续阅读 »
2017-04-17 MoreFreeze
距离上一篇airflow 进阶居然过了两个月了, 不得不说从上线 airflow 以来问题出了一些,这篇我就来分享下使用过程中踩过的坑, 也欢迎有兴趣的同学发信分享你遇到的问题或者解决办法。 继续阅读 »
2017-07-13 MoreFreeze
最近在写 airflow 的脚本时遇到一个问题,出于方便把 BaseSensorOperator 包了一层, 后来想改下超时时间和优先级等参数,发现改了没用,于是看了下源码,发现 Operator 都有个 apply_defaults 的装饰器,细看一看,实现挺巧妙,也解释了我遇到的问题。因为我的问题属于个人使用不当导致的, 所以就不放问题代码了,但我会在分析后给出一些使用方面要注意的地方和建议。 继续阅读 »
2016-12-16 MoreFreeze
Table of Contents {:toc} 最近被线上任务折磨得不行了,总是隔三差五出各种问题,导致日志丢了或者脚本没跑成功, 出了问题就需要手动去修复,比如手动把少的日志补齐,重跑失败的脚本。有些脚本之间有依赖关系, 手动跑起来就比较复杂,需要隔一会看一眼脚本有没有跑完,再接着跑下一个,严重影响效率。 所以我想如果有个程序能帮我定义好我的任务依赖关系,由它来自动解决运行时的依赖, 如果能有可视化界面看到执行状态,管理任务就更好了。 最近找到一个满足现在这些需求的开源项目—— airflow。 继续阅读 »
2017-02-13 MoreFreeze
Table of Contents {:toc} 上一篇介绍了 airflow 的基本概念和操作,隔了两个月,终于觉得要写些进阶内容了, 同时也在公司内开始摸索着使用了起来,中间也是遇到了许多问题,如这个项目的网址所表达的, 现在仍是一个孵化项目,使用在线上仍需谨慎。我就来做回吃螃蟹的人,分享下最近使用的心得, 以及遇到的一些问题。 继续阅读 »