用于长时间运行任务的管理员操作员和配置
项目描述
airflow-supervisor
Apache Airflow 工具,用于使用 supervisord 运行长时间运行或始终开启的工作
概述
此库提供了一种配置驱动的生成 supervisor 配置和 airflow 操作员/传感器 的方法,用于长时间运行或始终开启的工作。配置由 Pydantic、Hydra 和 OmegaConf 管理。
如何使用:在Airflow中使用
airflow-supervisor
可以安装在您的 airflow 服务器环境中,并在您的 dag 文件中导入。它提供了两个方便的顶级 DAG 子类
SupervisorLocal
:创建一个表示在 airflow 工作节点上运行的本地 supervisor 实例的 DAG(底层任务将使用PythonOperator
和BashOperator
在 airflow 和 supervisor 之间进行通信)SupervisorRemote
:创建一个表示在另一台机器上运行的远程 supervisor 实例的 DAG(底层任务将使用SSHOperator
在 airflow 和 supervisor 之间进行通信)
我们公开了由各种任务和传感器组成的 DAG,这些任务和传感器被暴露为一系列离散的步骤
- 设置
supervisord
配置 - 启动
supervisord
守护进程 - 使用
supervisorctl
启动受监督的程序 - 启动传感器,通过 supervisor 的 XML-RPC API 查询程序的运行状态
- 根据程序状态的改变进行评估并采取行动
- 如有必要,重启程序
- 从(4)中拆除传感器
- 从(3)中停止受监督的程序
- 从(2)中停止
supervisord
守护进程 - 从(1)中移除配置
此配置提供了最大程度的可配置性,同时对机器的要求最小(例如,没有对现有 supervisord
守护进程的要求,例如通过 systemd
)。它还允许您将自定义任务挂钩到流程的任何步骤。例如,如果我们检测到步骤(5)中进程已崩溃,您可以配置自己的任务在步骤 6 的默认重启之前/代替执行某些自定义操作。
以下是 DAG 的良好概述,其中包含代码路径和 Supervisor 执行的动作的注释
更多文档和代码示例即将推出!
如何:将其用作 supervisord 配置前端
此库可以在 airflow 之外用作通用的 supervisord 配置框架,从而获得静态类型带来的好处。例如,查看 hydra 配置测试。此示例通过组合独立的 hydra 配置生成 supervisor 配置文件。
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。
源分布
airflow_supervisor-0.2.0.tar.gz (31.8 kB 查看哈希值)