Files
parr_api/PARR.Core/Services/Snapshots/Interfaces/ISnapshotProvider.cs

32 lines
1.2 KiB
C#
Raw Permalink Normal View History

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