* About Hourly Schedules
Hourly cron schedules occupy a unique position in the spectrum of job scheduling: they're frequent enough to keep data fresh and systems responsive, but infrequent enough to run without significant operational overhead. Whether you're refreshing a cache, synchronising data from an external API, or running metrics aggregation, interval-based scheduling is one of the most common patterns in production systems.
Understanding Hourly Cron Syntax
0 * * * *— At minute 0 of every hour. Fires 24 times per day at the top of each hour.30 * * * *— At minute 30 of every hour. Useful for offsetting from top-of-hour traffic.0 */2 * * *— Every 2 hours. Fires at 00:00, 02:00, 04:00, etc.0 */3 * * *— Every 3 hours. 8 times per day.0 */4 * * *— Every 4 hours. 6 times per day.0 */6 * * *— Every 6 hours. Fires at midnight, 6 AM, noon, and 6 PM.0 9-17 * * 1-5— Every hour from 9 AM to 5 PM, Monday through Friday.
Common Use Cases for Hourly Schedules
Cache Invalidation and Data Refresh
A cache refresh job at 0 * * * * ensures stale data is never more than 60 minutes old. For less volatile data, 0 */4 * * * or 0 */6 * * * reduces load while maintaining acceptable freshness.
External API Synchronisation
SaaS platforms routinely sync data from external sources. API rate limits often constrain frequency, making a scheduled poll at 0 */2 * * * for moderately volatile data the appropriate pattern.
Metrics Aggregation and Reporting
Running aggregation jobs at 5 * * * * (5 minutes past the hour) rather than 0 * * * * gives the previous hour's data a brief window to fully settle before aggregation begins.
Best Practices for Hourly Scheduled Jobs
- Offset from the top of the hour. Use
15 * * * *or30 * * * *to avoid thundering herd at each hour boundary. - Verify step semantics.
0 */3 * * *fires at 00:00, 03:00, 06:00—always starting from hour 0. - Set execution time budgets. An hourly job should complete well within its interval.
- Implement idempotency for retries. If an hourly job fails and is retried, it should produce the same outcome.
- Consider drift. "Every hour" means at defined clock positions, not 60 minutes after the last run completed.
Seed schedules in this topic
- Every 1 minutes every day schedule page
- Every 2 minutes every day schedule page
- Every 3 minutes every day schedule page
- Every 5 minutes every day schedule page
- Every 10 minutes every day schedule page
- Every 15 minutes every day schedule page
- Every 20 minutes every day schedule page
- Every 30 minutes every day schedule page
- Every 45 minutes every day schedule page
- Every 1 hours every day schedule page
- Every 2 hours every day schedule page
- Every 3 hours every day schedule page
- Every 4 hours every day schedule page
- Every 6 hours every day schedule page
- Every 8 hours every day schedule page
- Every 12 hours every day schedule page
- Every 5 minutes every day on Monday through Friday schedule
- Every 2 hours every day on Monday through Friday schedule
- At minute 0 past every hour schedule page
- Every 15 minutes at hour 8-20 every day schedule page