Skip to content

什么是 Dagu?

Dagu 是一个用单一二进制文件构建的轻量级工作流引擎,带有现代化的 Web UI。以简单、声明式的 YAML 格式定义任何工作流,并按计划执行任意工作流。原生支持 shell 命令、通过 SSH 的远程执行和 docker 镜像。Dagu 是 Cron、Airflow、Rundeck 等的轻量级替代品。

工作原理

Dagu 执行您在 YAML 文件中定义为一系列步骤的工作流。这些步骤形成一个有向无环图 (DAG),确保清晰可预测的执行流程。

例如,一个简单的顺序 DAG:

yaml
steps:
  - echo "Hello, dagu!"
  - echo "This is a second step"

带并行步骤的 DAG:

yaml
steps:
  - echo "Step 1"
  - 
    - echo "Step 2a - runs in parallel"
    - echo "Step 2b - runs in parallel"
  - echo "Step 3 - waits for parallel steps"

或者带显式依赖的 DAG:

yaml
steps:
  - name: step 1
    command: echo "Hello, dagu!"
  - name: step 2
    command: echo "This is a second step"
    depends: step 1

演示

CLI 演示:创建一个简单的工作流并使用命令行界面执行它。

演示 CLI

Web UI 演示:使用 Web 界面创建和管理工作流,包括实时监控和控制。

CLI 文档

演示 Web UI

Web UI 文档

何时使用 Dagu

完美适用于:

  • 数据管道和 ETL
  • DevOps 自动化
  • 调度任务和批处理
  • 用可管理的东西替代 cron
  • 本地开发和测试

不太适合:

  • 亚秒级调度需求
  • 实时流处理

快速对比

功能CronAirflowDagu
依赖关系❌ 手动✅ 仅 Python✅ 任何语言
监控❌ 日志文件✅ Web UI✅ Web UI
设置时间✅ 几分钟❌ 几小时/几天✅ 几分钟
基础设施✅ 无❌ 数据库、队列✅ 无
错误处理❌ 手动✅ 内置✅ 内置
调度✅ 基础✅ 高级✅ 高级

了解更多

根据 MIT 许可证发布。