Створіть монітор, додайте один рядок до вашого job'а і дайте HelloCron зіставити пінги у хронологію. Коли пінг запізнюється чи відсутній, сповіщення досягає вас протягом 60 секунд.
Оберіть назву на кшталт db-backup і скажіть HelloCron, як часто job має виконуватися. Цей розклад стає контрактом, який має дотримуватися ваш job.
Надсилайте run на старті job'а і complete чи fail при завершенні. Будь-що, що може надіслати HTTP-запит, може надіслати пінг.
HelloCron будує хронологію з ваших пінгів, виявляє пропущені та невдалі запуски і сповіщає вас через email, Telegram, Discord, Slack чи вебхук.
Оберіть, що підходить вашому стеку. Кожен варіант звертається до того самого API з тими самими трьома станами: run, complete, fail.
0 2 * * * curl -fsS "https://api.hellocron.com/ping/db-backup?api_key=$CRX_KEY&status=run" >/dev/null; /usr/local/bin/backup.sh && curl -fsS "https://api.hellocron.com/ping/db-backup?api_key=$CRX_KEY&status=complete" >/dev/null || curl -fsS "https://api.hellocron.com/ping/db-backup?api_key=$CRX_KEY&status=fail" >/dev/null
#!/usr/bin/env bash
set -euo pipefail
ping() {
curl -fsS "https://api.hellocron.com/ping/db-backup?status=$1" \
-H "Authorization: Bearer $HELLOCRON_API_KEY" >/dev/null
}
ping run
if /usr/local/bin/backup.sh; then
ping complete
else
ping fail
fiimport os, requests
API = "https://api.hellocron.com/ping/db-backup"
HEADERS = {"Authorization": "Bearer " + os.environ["HELLOCRON_API_KEY"]}
requests.get(API, params={"status": "run"}, headers=HEADERS)
try:
run_backup()
requests.get(API, params={"status": "complete"}, headers=HEADERS)
except Exception:
requests.get(API, params={"status": "fail"}, headers=HEADERS)
raisecurl -fsS "https://api.hellocron.com/ping/db-backup?status=run" \ -H "Authorization: Bearer $HELLOCRON_API_KEY" /usr/local/bin/backup.sh curl -fsS "https://api.hellocron.com/ping/db-backup?status=complete" \ -H "Authorization: Bearer $HELLOCRON_API_KEY"
Тиша: це теж сигнал. HelloCron очікує наступного запуску протягом заданого вами інтервалу, плюс пільговий період, що поглинає звичайні коливання.
Пінг run ще не прийшов, але пільговий період усе ще відкритий. Запуск позначається як запізнілий, і жодне сповіщення не надсилається.
Пільговий період минув без жодного пінгу. HelloCron викликає сповіщення про пропущений запуск: job взагалі не виконався.
Пінг fail, або пінг run без завершення до кінця часового ліміту, позначає запуск як провалений і сповіщає негайно.
Пінг: це один HTTPS-запит. Зіставлення, виявлення і сповіщення відбуваються на стороні HelloCron.
Зареєструйтеся, отримайте API-ключ, вставте curl у свій cron. Ось і все.