namespace PARR.Core.Services.Snapshots.Interfaces { /// /// Общий снапшот провайдер. /// Используется для реализации паттерна "Стратегия" /// public interface ISnapshotProvider { /// /// Периодичность создания снапшота (не меньше 1 минуты). /// TimeSpan Interval { get; } /// /// Срок хранения снапшотов (например, 30 дней). Всё, что старше — удаляется. /// TimeSpan RetentionPeriod { get; } /// /// Метод сбора метрик и записи их в базу данных. /// /// /// Task TakeSnapshotAsync(CancellationToken cancellationToken); /// /// Метод очистки устаревших снапшотов. /// Task CleanUpOldSnapshotsAsync(CancellationToken cancellationToken); } }