- Очередью служит сама таблица: доставка ждёт свёртки в статусе `pending`, канал несёт только бит «есть работа». Переполнять нечего, падение процесса очередь не теряет, а подбор `pending` при старте — обычный проход воркера, а не отдельный код. Классификация исхода общая с пересборкой журнала. - Исход разбора начал отражать доставку, а не обстоятельства: отмена и занятость базы статус не меняют (иначе конкуренция за базу выводила бы доставку из очереди навсегда), паника свёртки больше не валит процесс, а учёт доставки идёт через транзакцию с повторами. - Длинный бюджет ответа выдан маршруту приёма, а не всему серверу: `write_timeout` в Go покрывает и чтение тела, и общий подъём снял бы защиту с остальных маршрутов.
32 lines
1.6 KiB
TOML
32 lines
1.6 KiB
TOML
# Конфигурация локального запуска в контейнере (`task up`).
|
|
#
|
|
# ВНИМАНИЕ: этот файл коммитится. Токенов в нём быть не должно.
|
|
# Сейчас проверка токенов выключена сознательно — сервис работает только в
|
|
# доверенной локальной сети, телефон шлёт на IP хоста. Перед выездом на
|
|
# rivendell токены переезжают в отдельный несохраняемый файл, см. задачу
|
|
# беклога «Управление секретами и токенами».
|
|
|
|
[server]
|
|
addr = ":8080"
|
|
read_timeout = "5m" # экспорт истории — десятки мегабайт, бывает медленно
|
|
write_timeout = "30s" # прочих маршрутов; приём держит свой бюджет, см. config.example.toml
|
|
|
|
[auth]
|
|
write_tokens = [] # ПУСТО = проверка выключена, см. предупреждение выше
|
|
read_tokens = []
|
|
|
|
[storage]
|
|
# Пути внутри контейнера. Снаружи это каталог ./data, смонтированный в /data
|
|
# (см. docker-compose.yml): база и сырой архив переживают пересборку образа.
|
|
db_path = "/data/healthlog.db"
|
|
archive_dir = "/data/raw"
|
|
|
|
[ingest]
|
|
# Ретроактивен: тем же пределом пересборка читает тела из архива, см.
|
|
# config.example.toml.
|
|
max_body_mb = 64
|
|
|
|
[log]
|
|
level = "info"
|
|
format = "json"
|