Files
orchestrator/docs/architecture/adr/adr-0002-job-queue.md
Dev Agent 7c68d1d812
All checks were successful
CI / test (pull_request) Successful in 9s
docs(orchestrator): adopt enduro doc canon + CLAUDE.md + ADR (ORCH-9)
2026-06-05 12:33:55 +03:00

1.6 KiB
Raw Blame History

adr-0002: Очередь задач вместо in-process потоков

  • Статус: accepted
  • Дата: 2026-06-03
  • Задача: ORCH-1 (F-2b)

Контекст

Ранняя версия запускала стадии конвейера в in-process daemon-потоках. Проблемы: не переживало рестарт (задачи терялись), нет контроля параллелизма, нет ретраев, нет наблюдаемости.

Решение

Введена персистентная очередь задач (src/queue_worker.py + таблица jobs в SQLite): atomic claim задачи воркером, max_concurrency, ретраи при сбое, restart-safe (running-задачи реквестятся при старте), эндпоинт GET /queue.

Альтернативы

  • In-process потоки — отклонены (не restart-safe).
  • Внешний брокер (Redis/RabbitMQ) — избыточно для текущего масштаба; SQLite-очередь проще и без новых зависимостей.

Последствия

  • Конвейер переживает рестарт контейнера.
  • Контроль параллелизма и наблюдаемость через /queue.
  • ⚠️ Очередь общая на все проекты прод-инстанса — фактор группового риска при self-hosting (см. docs/operations/INFRA.md).

Связи

adr-0001 (реестр проектов), INFRA.md (общая очередь при self-hosting).