Guides
How to eliminate idle time in jobs
Jobs spend time doing nothing — waiting on a service, a sleep, or a poll loop.
4 min read
Jobs spend time doing nothing — waiting on a service, a sleep, or a poll loop.
Why it happens
Fixed sleeps and naive polling are common workarounds for missing readiness checks, and they cost real minutes.
How to fix it
- Replace sleep with a proper healthcheck and docker compose up --wait
- Poll with exponential backoff and a hard timeout rather than a fixed interval
- Move long waits for external systems out of the runner entirely — use a webhook callback
Your next build could be twice as fast, at half the price
Start free. Migrating away is the same one line, and we publish that diff too.
Related
How to speed up GitHub ActionsYour pipeline takes longer than anyone wants to wait, and it is not obvious where the time goes.How to find the slow step in a workflowThe pipeline is slow but every individual step looks reasonable.How to reduce GitHub Actions cold startsJobs sit for 30 to 90 seconds before the first step runs.How to diagnose GitHub Actions queue timesJobs are queued for minutes before a runner picks them up.