Скиллы Новичок Разное

cron-retry

Скачать ZIP
13
Предупреждение о рисках!

Установка скиллов и плагинов 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»

Безопасность

  • Перезапускаются только временные сетевые ошибки
  • Учитывается состояние активности задачи
  • Предотвращаются циклы повторов
  • Все действия логируются для прозрачности

Навык повышает надёжность автоматизаций, обеспечивая самовосстановление задач без вмешательства пользователя. :


Файл из источника

10884_cron-retry-1.0.0.zip