using AsbCloudApp.Data; using System.Collections.Generic; namespace AsbCloudApp.Services; /// /// Делегат обновления состояния задачи /// /// public delegate void OnJobProgressDelagate(JobDto job); /// /// Сервис прореживания архива БД. /// Удаляет часть телеметрии. /// Понижает частоту записей в БД с 1 запись за 1 сек до 1 запись за N сек. /// public interface IReduceSamplingService { /// /// Получить все задания. Задания удаляются минимум через 10 сек после выполнения, возможно позднее. /// /// Enumerable of JobDto or empty IEnumerable GetJobs(); /// /// Получить состояние определенной задачи /// /// /// JobDto? GetOrDefaultState(int idTelemetry); /// /// Создать задачу прореживанию архива и добавить её в очередь на выполнение /// /// телеметрия для прореживания /// колбек процесса выполнения /// созданная задача или задача из очереди /// задача добавлена == true bool TryEnqueueRediceSamplingJob(int idTelemetry, OnJobProgressDelagate onProgress, out JobDto jobDto); }