Установка скиллов и плагинов OpenClaw осуществляется на ваш страх и риск. Все файлы были получены из открытых источников и предоставляются «как есть». Мы не гарантируем их корректную работу, безопасность или совместимость с вашей системой. Перед установкой настоятельно рекомендуется ознакомиться с содержимым кода и убедиться, что вы понимаете, какие изменения будут внесены в вашу систему.
cron-retry
Auto-retry failed cron jobs on connection recovery.
Инструмент предназначен для автоматического повторного запуска cron-задач, завершившихся с ошибкой из-за проблем с сетью. Он интегрируется в цикл heartbeat и самостоятельно отслеживает, какие задачи можно безопасно перезапустить после восстановления соединения.
Установка и запуск
Установить навык можно с помощью CLI:
clawhub install jrbobbyhansen-pixel/cron-retry
Если CLI не установлен:
npx clawhub@latest install jrbobbyhansen-pixel/cron-retry
Также доступна установка через OpenClaw CLI:
openclaw skills install jrbobbyhansen-pixel/cron-retry
Что делает этот навык
Навык отслеживает cron-задачи и выявляет ошибки, связанные с временными сетевыми сбоями. При восстановлении соединения он автоматически повторно запускает такие задачи, исключая случаи, где ошибка вызвана логикой, авторизацией или отключённым состоянием задачи. :
Быстрый старт (интеграция с heartbeat)
Добавьте следующий блок в файл HEARTBEAT.md:
## Cron Recovery Check
Check for cron jobs with lastStatus: "error".
If the error matches network patterns (connection error, sendMessage failed, fetch failed, ETIMEDOUT, ECONNREFUSED),
retry the job using cron tool with action: "run" and the job ID.
Report what was recovered.
После этого при каждом heartbeat задачи с сетевыми ошибками будут автоматически перезапускаться.
Как это работает
- На каждом heartbeat выполняется
cron list - Фильтруются задачи с
lastStatus = "error"иenabled = true - Проверяется, относится ли ошибка к сетевым
- Подходящие задачи перезапускаются через
cron run - Результаты фиксируются и логируются
Поддерживаемые сетевые ошибки
- Network request failed
- Connection error
- ECONNREFUSED
- ETIMEDOUT
- ENOTFOUND
- sendMessage failed
- fetch failed
- socket hang up
Что перезапускается, а что нет
Перезапускаются:
- Таймауты сети
- Ошибки соединения
- Сбои отправки сообщений
- Ошибки DNS
Не перезапускаются:
- Логические ошибки (неверная конфигурация, отсутствующие данные)
- Ошибки авторизации
- Отключённые задачи
- Задачи, недавно успешно выполненные
Ручная проверка и восстановление
Для ручной диагностики и перезапуска задач используйте команды:
# Список всех задач
clawdbot cron list
# Поиск упавших задач
clawdbot cron list | jq '.jobs[] | select(.state.lastStatus == "error") | {name, error: .state.lastError}'
# Перезапуск задачи
clawdbot cron run --id
Пример сценария
19:00 — запускается cron-задача (например, отправка отчёта)
Происходит сетевой сбой — отправка сообщения не удалась
Задача получает статус error
19:15 — соединение восстановлено, запускается heartbeat
Навык обнаруживает ошибку, определяет её как сетевую
Повторно запускает задачу → сообщение успешно отправлено
В логах фиксируется: «Recovered 1 job»
Безопасность
- Перезапускаются только временные сетевые ошибки
- Учитывается состояние активности задачи
- Предотвращаются циклы повторов
- Все действия логируются для прозрачности
Навык повышает надёжность автоматизаций, обеспечивая самовосстановление задач без вмешательства пользователя. :
Файл из источника