c217009425
Even chunked, a single concurrency-1 maintenance lane is fragile — a 30-min DB backup or a multi-chunk library audit holds the slot and delays the quick self-healing recovery sweeps / vacuum (operator-flagged 2026-06-07: long runs must never block quick maintenance). Route the long one-shots — backup.*, admin.* (normalize/re-extract/cascade- delete), library_audit.* — to a new `maintenance_long` queue served by a dedicated worker (concurrency 1), added to docker-compose (+ dev override). The scheduler keeps the quick `maintenance` lane (sweeps, vacuum, cleanup) for itself, so a backup can no longer starve a 5-min vacuum. UI queue list + routing tests updated. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
55 lines
901 B
YAML
55 lines
901 B
YAML
services:
|
|
postgres:
|
|
ports:
|
|
- "5432:5432"
|
|
|
|
redis:
|
|
ports:
|
|
- "6379:6379"
|
|
|
|
web:
|
|
build:
|
|
context: .
|
|
dockerfile: Dockerfile
|
|
environment:
|
|
LOG_LEVEL: DEBUG
|
|
volumes:
|
|
- ./backend:/app/backend
|
|
- ./alembic:/app/alembic
|
|
|
|
worker:
|
|
build:
|
|
context: .
|
|
dockerfile: Dockerfile
|
|
environment:
|
|
LOG_LEVEL: DEBUG
|
|
volumes:
|
|
- ./backend:/app/backend
|
|
|
|
scheduler:
|
|
build:
|
|
context: .
|
|
dockerfile: Dockerfile
|
|
environment:
|
|
LOG_LEVEL: DEBUG
|
|
volumes:
|
|
- ./backend:/app/backend
|
|
|
|
maintenance-long:
|
|
build:
|
|
context: .
|
|
dockerfile: Dockerfile
|
|
environment:
|
|
LOG_LEVEL: DEBUG
|
|
volumes:
|
|
- ./backend:/app/backend
|
|
|
|
ml-worker:
|
|
build:
|
|
context: .
|
|
dockerfile: Dockerfile.ml
|
|
environment:
|
|
LOG_LEVEL: DEBUG
|
|
volumes:
|
|
- ./backend:/app/backend
|