Crea un monitor, agrega una línea a tu job y deja que HelloCron correlacione los pings en una línea de tiempo. Cuando un ping llega tarde o no llega, la alerta te alcanza en 60 segundos.
Elige un nombre como db-backup e indícale a HelloCron con qué frecuencia debería correr el job. Ese horario se convierte en el contrato que tu job tiene que cumplir.
Envía run cuando el job arranca y complete o fail cuando termina. Cualquier cosa que pueda hacer una solicitud HTTP puede enviar un ping.
HelloCron construye una línea de tiempo a partir de tus pings, detecta ejecuciones perdidas y fallidas, y te avisa por email, Telegram, Discord, Slack o webhook.
Elige lo que se ajuste a tu stack. Cada variante habla con la misma API y con los mismos tres estados: 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"
El silencio también es una señal. HelloCron espera la próxima ejecución dentro del intervalo que definiste, más un período de gracia que absorbe las variaciones normales.
El ping run todavía no llegó, pero el período de gracia sigue abierto. La ejecución se marca como tardía y no se envía ninguna alerta.
El período de gracia pasó sin recibir ningún ping. HelloCron genera una alerta de ejecución perdida: el job no corrió en absoluto.
Un ping fail, o un ping run sin cierre antes del límite de tiempo, marca la ejecución como fallida y alerta de inmediato.
Un ping es una simple solicitud HTTPS. La correlación, la detección y las alertas ocurren del lado de HelloCron.
Regístrate, consigue una API key, pega el curl en tu cron. Eso es todo.