주말에 Cron Job 모니터링 API를 만들었습니다
발행: (2026년 4월 26일 AM 05:50 GMT+9)
3 분 소요
원문: Dev.to
Source: Dev.to
문제
모든 개발자는 어디선가 최소 하나의 크론 작업을 실행하고 있습니다—백업, 데이터 처리, 보고서 전송 등.
크론 작업이 중단되면, 기본적으로 크론은 실패를 알려주지 않기 때문에 그 실패가 며칠 또는 몇 주 동안 눈에 띄지 않을 수 있습니다.
해결책: CronPing
CronPing은 크론 작업을 모니터링하기 위한 가벼운 API입니다. 다음을 할 수 있습니다:
- 예상 간격과 함께 모니터를 등록
- 크론 작업에서 서비스에 ping 전송
- 작업이 일정에 맞지 않을 때 알림(예: 웹훅) 수신
이전 (무음 실패)
0 2 * * * /opt/backup.sh
이후 (모니터링됨)
0 2 * * * /opt/backup.sh && curl -s https://cronping.anethoth.com/ping/abc123
사용법
회원가입
curl -X POST https://cronping.anethoth.com/api/v1/signup \
-H "Content-Type: application/json" \
-d '{ "email": "you@example.com" }'
모니터 생성
curl -X POST https://cronping.anethoth.com/api/v1/monitors \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "nightly-backup",
"interval_seconds": 86400,
"grace_seconds": 300
}'
크론 작업에 ping 추가
... && curl -s https://cronping.anethoth.com/ping/YOUR_TOKEN
구현 세부 사항
- 프레임워크: API 레이어에 FastAPI 사용
- 스토리지: 모니터 데이터를 영구화하기 위해 SQLite 사용
- 백그라운드 처리: 정기 작업으로 지연된 모니터 확인
- 배포: 손쉬운 롤아웃을 위한 Docker 컨테이너
가격
- 무료 티어: 3개의 모니터와 7일 이력 제공
- 더 많은 모니터와 더 긴 보관 기간은 유료 플랜에서 이용 가능합니다.
https://cronping.anethoth.com 에서 확인해 보세요.