Cover image for Your cron is lying to you. Here's how to catch silent failures.

Harun R Rayhan

Your cron is lying to you. Here's how to catch silent failures.

Most production apps run cron jobs, queue workers, and scheduled tasks. And most of them have no monitoring on whether those jobs actually ran.

Your uptime monitor says green. Your queue disagrees.

The Problem

A deploy clobbers your cron entry. The app responds 200. No one fires the scheduler. Your nightly emails stop. Your billing queue hits 6,000 deep. No errors. No alerts. Just silence.

Generic uptime monitors can't tell you any of that. They check if a URL responds 200 — not if your cron ran, your workers are draining, or your agent isn't looping on a broken tool call.

The Solution

I built Crontinel — an open-source cron and queue monitoring tool that hooks into your framework's events, not your code.

What it watches:

  • Scheduler — missed runs, drift, late executions
  • Workers — crashed, paused, idle supervisors
  • Queue depth — backpressure, oldest job age, failure rate
  • Agents — tool call loops, token spend, model latency

How it works:

# Laravel
composer require crontinel/laravel

# Node
npm i @crontinel/node

# Python
pip install crontinel

Enter fullscreen mode Exit fullscreen mode

Two commands to install. Zero per-task instrumentation. It hooks into your framework's existing events.

What You Get

  • 60-second detection — missed runs trip an alert before the next cron tick
  • Per-worker status — paused detection, queue sparklines, failed job rate
  • Alert routing — Slack, PagerDuty, email, webhook, Telegram
  • CI/CD checkcrontinel check in your deploy hook verifies everything after each deploy
  • Self-hosted option — MIT licensed, works offline, no SaaS required

Real Example

$ crontinel check
✓ scheduler           last run 00:00:12 ago
✓ workers.default     2 supervisors · running
✓ queue.invoices      127 pending · 2m oldest
✓ agents.support      12 runs · p95 8.2s
✗ queue.emails        backpressure · 6,413 pending

Enter fullscreen mode Exit fullscreen mode

That last line just saved you from a billing disaster.

Open Source

MIT licensed. SDKs for Laravel, Node, Python, Go, Rust, and PHP. The cloud dashboard is a convenience layer, not a dependency.

GitHub: github.com/crontinel/crontinel

If you've ever had a cron job fail silently and only found out from an angry customer email — this is for you.


Free tier available. No credit card required. Self-host for free.