• quince-dotnet quince-dotnet
  • Информация о проекте
    • Информация о проекте
    • Активность
    • Метки
    • Участники
  • Репозиторий
    • Репозиторий
    • Файлы
    • Коммиты
    • Ветки
    • Теги
    • Участники
    • Диаграмма
    • Сравнение
  • mos.track
    • mos.track
    • Список
    • Доски
    • Спринты
  • Запросы на слияние 0
    • Запросы на слияние 0
  • CI/CD
    • CI/CD
    • Конвейеры
    • Задания
    • Расписания
  • Развертывания
    • Развертывания
    • Окружения
    • Релизы
  • Пакеты и реестры
    • Пакеты и реестры
    • Реестр пакетов
    • Реестр контейнеров
  • Мониторинг
    • Мониторинг
    • Инциденты
  • Аналитика
    • Аналитика
    • Поток ценности
    • CI/CD
    • Репозиторий
  • mos.wiki
    • mos.wiki
  • Сниппеты
    • Сниппеты
  • Активность
  • Диаграмма
  • Создать новую задачу
  • Задания
  • Коммиты
  • Доски с задачами
Свернуть панель
  • twelve
  • quince-dotnet
  • Запросы на слияние
  • !6

v1.00.066: чистка устаревших записей по таймеру и применение нового срока хранения

  • Ревью изменений

  • Скачать
  • Почтовые патчи
  • Простое отличие
Слиты twelve запросил слияние fix/retention-cleanup-timer в main Сен 22, 2026
  • Обзор 1
  • Коммиты 1
  • Конвейеры 0
  • Изменения 8

Created by: ykmn

Проблема

Старые записи не удалялись автоматически, а уменьшение retention_days не освобождало место.

Причины

  1. CleanupOldFiles вызывалась только при старте канала и из MaybeRotate при смене даты, а MaybeRotate работает лишь при открытом файле. У каналов с детектором тишины и при падении ffmpeg из-за «No space left on device» чистка не срабатывала, и диск не освобождался.
  2. ChannelEngine.UpdateConfig не передавал новый RetentionDays работающему AudioWriter.

Изменения

  • AudioWriter: собственный таймер чистки, сразу при старте и далее раз в час. Вызов из MaybeRotate убран.
  • Добавлен AudioWriter.UpdateRetention. Он вызывается из ChannelEngine.UpdateConfig и сразу запускает чистку.
  • Защита от наложения проходов и логирование необработанных исключений. Смена срока во время идущего прохода не теряется.
  • INFO-итог прохода: файлы, папки, ГБ.
  • Версия 1.00.066, обновлены CHANGELOG, HISTORY, DETAILS.

Проверка

  • dotnet test: 256 тестов зелёные, включая новый UpdateRetention_ShortenedOnRunningWriter_DeletesNewlyExpiredFolders.
  • На боевом сервере не проверялось.

🤖 Generated with Claude Code

Ответственный
Назначить
Проверяющие
Запросить ревью
Оценка трудозатрат
Исходная ветка: fix/retention-cleanup-timer