How does */5 * * * * work?
The */5 notation in the minute field is a step expression. It means "start at 0, then every 5 values" — which generates the set {0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55} within the minute range of 0–59. The remaining four * wildcards match every hour, day, month, and weekday, so the job runs at each of those 12 minute values in every hour of every day.
A 5-minute cron is the sweet spot for near-real-time polling workloads that do not justify a persistent background worker: syncing external API data, checking for new file uploads, processing pending notifications, or updating a short-lived dashboard cache. It is also the minimum frequency recommended by GitHub Actions for reliable trigger delivery.
Step expressions vs. explicit lists
*/5 * * * * and 0,5,10,15,20,25,30,35,40,45,50,55 * * * * are semantically identical — both generate the same execution set. The step form is more concise; the list form makes the exact trigger times explicit. Use whichever is clearer for your team. Most cron implementations accept both.