<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Crontinel</title>
    <description>The latest articles on DEV Community by Crontinel (@crontinel).</description>
    <link>https://dev.to/crontinel</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4049106%2F6acaee76-4b60-4b80-a174-7e7b179bc281.png</url>
      <title>DEV Community: Crontinel</title>
      <link>https://dev.to/crontinel</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/crontinel"/>
    <language>en</language>
    <item>
      <title>Your cron is lying to you. Here's how to catch silent failures.</title>
      <dc:creator>Crontinel</dc:creator>
      <pubDate>Mon, 27 Jul 2026 09:54:33 +0000</pubDate>
      <link>https://dev.to/crontinel/your-cron-is-lying-to-you-heres-how-to-catch-silent-failures-14ec</link>
      <guid>https://dev.to/crontinel/your-cron-is-lying-to-you-heres-how-to-catch-silent-failures-14ec</guid>
      <description>&lt;p&gt;Your cron is lying to you. Here's how to catch silent failures.&lt;/p&gt;

&lt;p&gt;I found out the hard way that most production apps have zero monitoring on their cron jobs and queue workers. My uptime monitor said everything was fine. It was lying.&lt;/p&gt;

&lt;h2&gt;
  
  
  What happened
&lt;/h2&gt;

&lt;p&gt;A deploy wiped out our cron entry. The app still returned 200 on every health check. Nobody noticed the scheduler stopped firing. Nightly emails just... stopped.&lt;/p&gt;

&lt;p&gt;Three days later, the billing queue had 6,000 jobs backed up. No errors anywhere. No alerts. Just a very confused customer asking why their invoice never arrived.&lt;/p&gt;

&lt;p&gt;Generic uptime monitors check if a URL responds. They can't tell you if your cron ran, if your workers are alive, or if your queue is hemorrhaging jobs.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I built
&lt;/h2&gt;

&lt;p&gt;I got tired of finding out about broken jobs from angry customers, so I built &lt;a href="https://crontinel.com" rel="noopener noreferrer"&gt;Crontinel&lt;/a&gt;. It's open source, and it watches the stuff your uptime monitor can't see.&lt;/p&gt;

&lt;p&gt;Here's what it tracks:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Scheduler&lt;/strong&gt; - did the cron job actually fire? Is it drifting?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Workers&lt;/strong&gt; - are they alive? Crashed? Stuck paused?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Queue depth&lt;/strong&gt; - how deep is the backlog? How old is the oldest job?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Agent runs&lt;/strong&gt; - is that AI agent stuck in a tool call loop burning your API credits?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Setup is two commands, no per-task wrapping:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Laravel&lt;/span&gt;
composer require crontinel/laravel

&lt;span class="c"&gt;# Node&lt;/span&gt;
npm i @crontinel/node

&lt;span class="c"&gt;# Python&lt;/span&gt;
pip &lt;span class="nb"&gt;install &lt;/span&gt;crontinel
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It hooks into your framework's existing events. No decorators. No middleware changes. No touching your job classes.&lt;/p&gt;

&lt;h2&gt;
  
  
  What you see
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="gp"&gt;$&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;crontinel check
&lt;span class="go"&gt;✓ 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
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That last line tells you something is wrong before your customers do.&lt;/p&gt;

&lt;p&gt;You get 60 second detection, per-worker status, alert routing to Slack or PagerDuty or wherever your team hangs out, and a CI/CD check you can throw in your deploy hook.&lt;/p&gt;

&lt;h2&gt;
  
  
  It's free
&lt;/h2&gt;

&lt;p&gt;MIT licensed. SDKs for Laravel, Node, Python, Go, Rust, and PHP. You can self-host the whole thing or use the cloud dashboard. No vendor lock-in.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="https://github.com/crontinel/crontinel" rel="noopener noreferrer"&gt;github.com/crontinel/crontinel&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you've ever gotten that sinking feeling when a customer asks "hey, did my email go out?" and you have no idea... this is for you.&lt;/p&gt;

&lt;p&gt;Free tier. No credit card. Self-host if you want.&lt;/p&gt;

</description>
      <category>devops</category>
      <category>monitoring</category>
      <category>production</category>
      <category>sre</category>
    </item>
  </channel>
</rss>
