Commit Graph

1 Commits

Author SHA1 Message Date
agent_coder f997cbef80 fix(cache): свипер медиа-кеша — безусловный DB-diff + интервал в конфиг + дедуп очереди загрузок
Docker Image CI / build (pull_request) Waiting to run
Задание 12 (баг): диф+удаление строк из SQLite в cache_media_files считались только
if files_removed>0, поэтому протухшая (>20д) запись без файла на диске выпадала из
remove_old_cached_files_sync (ветка continue без инкремента счётчика) и оставалась в
БД навсегда. Диф теперь считается безусловно: removed_entries = старый набор минус
выживший, purge при непустом removed_entries независимо от files_removed.

Задание 13: cache_sweep_interval (env CACHE_SWEEP_INTERVAL, дефолт 900, пол 60 —
значение ниже отвергается на старте) по существующему _parse_int_env-паттерну;
delay=60 -> Config['cache_sweep_interval'].

Задание 14: дедуп очереди фоновых загрузок через module-level _queued_media
(set[tuple[str,int,str]]): enqueue пропускает уже-в-очереди ключ, discard в finally
воркера (упавшая/затротленная загрузка переочередится), discard+break при QueueFull.
Однопоточный loop, между проверкой и мутацией нет await -> гонок нет.

closes #25

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-10 00:41:35 +03:00