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);
}
}