Loading page...Загружаем страницу...正在加载页面...
AtlasRepo

Why our unattended publishing slot kept firing late

Описание и применение

Проблема: расписанные задачи GitHub Actions часто отстают на 55–65 минут из‑за общей очереди и высокой нагрузки. Решение: использовать внешний HTTP‑планировщик, который вызывает workflow_dispatch, тем самым перемещая запуск вне общей очереди GitHub. Это уменьшает задержку, но требует проверки токена и мониторинга внешнего планировщика.

Задача

GitHub Actions scheduled jobs drifted 55–65 minutes late or failed to run, causing unattended publishing pipelines to miss their intended times.

Результат

The external scheduler approach reduces drift by moving the trigger outside GitHub’s shared queue, but introduces its own potential failures and requires monitoring of the dispatch call.

Рабочий процесс

  • 1. Keep existing schedule: cron block as a fallback. 2. Create a curl command to POST to GitHub API actions/workflows/<WORKFLOW_FILE>/dispatches with required headers and branch ref. 3. Register the same request with a free external scheduler (e.g., cron-job.org) to run at the desired time. 4. Add a monitoring step to check the HTTP status of the dispatch call and alert on failures. 5. Verify the workflow runs on time; if external scheduler fails, the GitHub cron fallback still triggers the job (though late).

Доказательства

Scheduled events can be delayed during periods of high loads of GitHub Actions workflow runs. High load times include the start of every hour. If the load is sufficiently high enough, some queued jobs may be dropped.

Источник

In GitHub's own community forum, a GitHub staff member acknowledged that scheduled-job drift has been getting worse, with the drop rate up more than 30% over two months.

Источник

The fix — use an event that isn't on that queue. schedule shares a queue with every other repo's scheduled jobs. workflow_dispatch runs on a different path with no such drift.

Источник

  • Дата записи: 2026-09-06T18:52:33.056Z