跳转到主要内容

用于长时间运行任务的管理员操作员和配置

项目描述

airflow-supervisor

Apache Airflow 工具,用于使用 supervisord 运行长时间运行或始终开启的工作

Build Status codecov License PyPI

概述

此库提供了一种配置驱动的生成 supervisor 配置和 airflow 操作员/传感器 的方法,用于长时间运行或始终开启的工作。配置由 PydanticHydraOmegaConf 管理。

如何使用:在Airflow中使用

airflow-supervisor 可以安装在您的 airflow 服务器环境中,并在您的 dag 文件中导入。它提供了两个方便的顶级 DAG 子类

  • SupervisorLocal:创建一个表示在 airflow 工作节点上运行的本地 supervisor 实例的 DAG(底层任务将使用 PythonOperatorBashOperator 在 airflow 和 supervisor 之间进行通信)
  • SupervisorRemote:创建一个表示在另一台机器上运行的远程 supervisor 实例的 DAG(底层任务将使用 SSHOperator 在 airflow 和 supervisor 之间进行通信)

我们公开了由各种任务和传感器组成的 DAG,这些任务和传感器被暴露为一系列离散的步骤

  1. 设置 supervisord 配置
  2. 启动 supervisord 守护进程
  3. 使用 supervisorctl 启动受监督的程序
  4. 启动传感器,通过 supervisor 的 XML-RPC API 查询程序的运行状态
  5. 根据程序状态的改变进行评估并采取行动
  6. 如有必要,重启程序
  7. 从(4)中拆除传感器
  8. 从(3)中停止受监督的程序
  9. 从(2)中停止 supervisord 守护进程
  10. 从(1)中移除配置

此配置提供了最大程度的可配置性,同时对机器的要求最小(例如,没有对现有 supervisord 守护进程的要求,例如通过 systemd)。它还允许您将自定义任务挂钩到流程的任何步骤。例如,如果我们检测到步骤(5)中进程已崩溃,您可以配置自己的任务在步骤 6 的默认重启之前/代替执行某些自定义操作。

以下是 DAG 的良好概述,其中包含代码路径和 Supervisor 执行的动作的注释

更多文档和代码示例即将推出!

如何:将其用作 supervisord 配置前端

此库可以在 airflow 之外用作通用的 supervisord 配置框架,从而获得静态类型带来的好处。例如,查看 hydra 配置测试。此示例通过组合独立的 hydra 配置生成 supervisor 配置文件。

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源分布

airflow_supervisor-0.2.0.tar.gz (31.8 kB 查看哈希值

上传时间

构建分布

airflow_supervisor-0.2.0-py3-none-any.whl (55.1 kB 查看哈希值

上传时间 Python 3

支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面