← Блог

Мониторинг фоновых workers и очередей, когда веб зелёный

Раздельный стек — Next.js на Vercel и BullMQ на Railway, или Django + Celery — ломается наполовину. Дашборд открывается, экспорт и почта не идут.

StillOnline достучится только до публичных HTTPS URL. Worker без ingress нуждается в прокси-сигнале в health или heartbeat URL, который отдаёт веб-тиер. Ниже — что мониторить и как подписать Фоновые задачи на странице статуса.

Краткий ответ

Зарегистрируйте URL, который падает при остановке workers — GET /health с heartbeat очереди или GET /workers/health с 503, если последний успех устарел. StillOnline опрашивает раз в пять минут на Free (один URL на проект); две неудачи подрядDOWN. Component Фоновая обработка на странице статуса — для инцидентов без падения API-хоста. Глубину очереди StillOnline не читает — кодируйте в HTTP JSON. Heartbeat для cron.

Веб vs worker

СлойХостStillOnline «из коробки»
Web / APIapi.../healthДа
WorkerБез публичного портаНет — нужен прокси
Очередь RedisВнутренняяЧерез handler health
CronShell по расписаниюПаттерн heartbeat

Очереди Redis снаружи не видны — только то, что отдаёт приложение.

Паттерн 1 — heartbeat в /health

{
  "status": "ok",
  "worker_last_ok": "2026-06-08T11:55:00Z",
  "queue_lag_seconds": 12
}

503, если now - worker_last_ok > 600. Один URL на Free.

Паттерн 2 — отдельный worker health на Pro

Pro — до 10 проверок: веб и .../workers/health. Components API и Фоновые задачи.

Паттерн 3 — публичный worker на PaaS

Fly/Railway с HTTP — мониторинг Fly.

Страница статуса

При 200 на веб, но паузе jobs — Degraded на Фоновых задачах, API Operational. Инциденты в StillOnline вручную.

Связанные материалы

FAQ

StillOnline подключается к Redis?

Нет — только ваш HTTPS health.

Worker только в private network?

Worker пишет timestamp; публичный /health читает — heartbeat.

Падение worker = вся страница красная?

Только если продукт недоступен; иначе Degraded на component задач.