Skip to content
cronhelp.me
Guide · Foot-guns

Extreme frequency

Short answer
This catches the two classic accidents: a schedule that runs every single minute, and one that runs only once a year. Both are sometimes intended and often not.
Wrongevery minute — 1,440 runs a day
* * * * *
Righta deliberate, bounded interval
*/15 * * * *

Two frequencies are worth a second look because they are so often reached by accident: the maximum and the minimum that standard cron can express.

At the top end, * * * * * runs a job every minute — 60 times an hour, 1,440 times a day. Sometimes that is exactly right for near-real-time polling. Just as often it is a placeholder someone forgot to tighten, or a misunderstanding of what * in the minute field does. Per-minute jobs flood logs, can overlap themselves if a run takes longer than a minute, and quietly consume resources, so it is worth confirming the frequency is deliberate.

At the bottom end, a fully-pinned expression such as 0 0 1 1 * runs once a year, at midnight on January 1st. Annual jobs are legitimate — license renewals, yearly reports — but they are also easy to create by over-restricting a schedule you meant to run more often, and a once-a-year job that silently fails is one you might not notice for twelve months.

This finding is informational; neither frequency is an error. It exists to make you pause. If you meant every minute, fine — consider whether a lighter cadence like */5 * * * * or */15 * * * * would do, and add a lock to prevent overlap. If you meant once a year, make sure the job is monitored, because a rare schedule hides failures. When a date field is also restricted, the more specific star-minute-restricted warning takes over, since that pattern is a sharper diagnosis of the same accident.

Watch the linter flag it live — the finding below appears the moment the expression is entered:

Cron expression5-field
Every minute
Lint
Infofreq-extreme
This job runs every minute — 1,440 times a day. If you meant once an hour, use '0 * * * *'.
Learn more →
Next runs
#
1
2
3
4
5
6
7
Copy as
All lint rulesSeverity: Info