Альтернатива cron
Сохраните простоту cron и добавьте нужный production-контроль.
Dagu оставляет расписания рядом с вашими скриптами и добавляет граф зависимостей, ретраи, логи, историю, ручной rerun и Web UI.
name: nightly-ops
schedule: "0 2 * * *"
steps:
- id: extract
run: python scripts/extract.py
- id: transform
run: ./bin/transform
retry_policy:
limit: 3
depends: [extract]
- id: notify
run: ./scripts/slack-success.sh
depends: [transform]Cron-подобные расписания в YAML
Зависимости шагов вместо shell-цепочек
Перезапуск проваленных шагов без SSH
История и логи в Web UI
At a glance
Cron vs. Dagu
Полноценный граф шагов.
Shell-цепочки, lock-файлы и wrapper-скрипты.
Политики ретраев на уровне шага.
Самописные циклы или ручной перезапуск.
Web UI, логи, статус и история.
Системные логи и ручные соглашения.
In depth
Where each tool fits
Cron прост, пока задачи не зависят друг от друга
Как только нужны ретраи, захват вывода, порядок выполнения или история, cron быстро превращается в набор оберток.
- Описывайте каждую команду как именованный шаг
- Используйте зависимости вместо длинных shell-цепочек
- Смотрите вывод и rerun через Web UI
Не нужна миграция на платформу
Dagu запускает ваши существующие скрипты. Первая миграция может ограничиться одной ночной задачей.
- Сохраняйте Bash, Python, Go, Java, PHP и Perl задачи
- Переносите расписания в версионируемый YAML
- Добавляйте таймауты и ретраи постепенно
Операционная видимость по умолчанию
Dagu собирает состояние, которое cron обычно разбрасывает по syslog, файлам и устным договоренностям.
- Смотрите текущий статус, историю и логи
- Запускайте вручную без входа на хост
- Используйте notifications и downstream steps для обработки ошибок
FAQ
Practical questions before adopting Dagu
Поддерживает ли Dagu cron-синтаксис?
Да. Вы можете использовать привычные cron-выражения и при этом получить состояние workflow и контроль над шагами.
Нужно ли переписывать cron-скрипты?
Нет. Поместите существующую команду в шаг Dagu и затем постепенно добавляйте зависимости, ретраи и уведомления.
Нужен ли Kubernetes?
Нет. Dagu может работать как один процесс на обычной машине. Распределенное выполнение добавляется при необходимости.
Next step
Start with one workflow.
Install Dagu, move one fragile script or agent task into YAML, and decide from a real run history.