Cron: Every 5 Minutes
*/5 * * * * is one of the most widely used cron schedules — it fires 12 times an hour, at :00, :05, :10, and so on, striking a practical balance between freshness and load. It's the default polling interval for countless monitoring agents, cache warmers, and sync jobs.
*/5 * * * *
Examples & Variations
Common Mistakes
- Treating */5 as exactly 300 seconds apart in wall-clock time when the scheduler itself has jitter — most job runners fire within a window, not to the exact second.
- Running database-heavy jobs every 5 minutes without checking whether the previous run finished, which can quietly queue up parallel executions under load.
- Using */5 for something that only needs to run a few times a day — it multiplies unnecessary invocations and log noise.
Best Practices
- This is a safe default for status polling, cache refresh, and metrics collection — use it unless you have a specific reason to go tighter or looser.
- Restrict to business hours (*/5 8-20 * * *) if the job supports a user-facing feature that isn't needed overnight, to cut unnecessary load.
- Add basic instrumentation (a counter or last-run timestamp) so a stuck job is obvious well before it becomes a real incident.
Frequently Asked Questions
- Why is every 5 minutes such a common default?
- It's frequent enough to feel near-real-time for dashboards and syncs, but infrequent enough that 12 runs an hour rarely stresses a typical server or API rate limit — a practical sweet spot most tools default to.
- Does */5 * * * * work in GitHub Actions?
- Yes, GitHub Actions supports standard cron syntax for scheduled workflows, though GitHub explicitly warns that schedules can be delayed during periods of high load — don't rely on exact timing.
- How do I run every 5 minutes but only during work hours?
- Add an hour range: */5 9-17 * * 1-5 runs every 5 minutes, 9 AM to 5:59 PM, Monday through Friday.