32 lines
1.2 KiB
C#
32 lines
1.2 KiB
C#
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);
|
||
}
|
||
}
|