Airflow 简介
Airflow 是一个集定时任务和监控为一体的平台,它通过运行 DAG 来创建定时任务,功能强大且开发简单。
启动入口
执行 airflow webserver -p 8000 即可启动 Web Server。Scheduler 的启动逻辑类似。
源码分析
安装配置
def do_setup():
write_version()
setup(
name='apache-airflow',
description='Programmatically author, schedule and monitor data pipelines',
license='Apache License 2.0',
version=version,
packages=find_packages(exclude=['tests*']),
package_data={'': ['airflow/alembic.ini', "airflow/git_version"]},
include_package_data=True,
zip_safe=False,
scripts=['airflow/bin/airflow'],
命令行入口
当你执行 airflow 命令时,实际执行的是 airflow/bin/airflow 文件。
if __name__ == '__main__':
if configuration.get("core", "security") == 'kerberos':
os.environ['KRB5CCNAME'] = configuration.get('kerberos', 'ccache')
os.environ['KRB5_KTNAME'] = configuration.get('kerberos', 'keytab')
parser = CLIFactory.get_parser()
args = parser.parse_args()
args.func(args)
参数解析
CLIFactory 是一个解析类。当执行 airflow webserver -p 时,CLIFactory 负责把接收到的参数解析了,webserver 对应的是 airflow/bin/cli.py 中的 webserver() 函数,scheduler 同理。

