2024-07-04 11:02:45 +05:00
|
|
|
|
using AsbCloudApp.Data;
|
2022-10-11 17:04:26 +05:00
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
|
2024-08-19 10:01:07 +05:00
|
|
|
|
namespace AsbCloudApp.Services;
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Делегат обновления состояния задачи
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="job"></param>
|
|
|
|
|
public delegate void OnJobProgressDelagate(JobDto job);
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Сервис прореживания архива БД.
|
|
|
|
|
/// Удаляет часть телеметрии.
|
|
|
|
|
/// Понижает частоту записей в БД с 1 запись за 1 сек до 1 запись за N сек.
|
|
|
|
|
/// </summary>
|
|
|
|
|
public interface IReduceSamplingService
|
2022-10-11 17:04:26 +05:00
|
|
|
|
{
|
|
|
|
|
/// <summary>
|
2024-08-19 10:01:07 +05:00
|
|
|
|
/// Получить все задания. Задания удаляются минимум через 10 сек после выполнения, возможно позднее.
|
2022-10-11 17:04:26 +05:00
|
|
|
|
/// </summary>
|
2024-08-19 10:01:07 +05:00
|
|
|
|
/// <returns>Enumerable of JobDto or empty</returns>
|
|
|
|
|
IEnumerable<JobDto> GetJobs();
|
2022-10-11 17:04:26 +05:00
|
|
|
|
|
|
|
|
|
/// <summary>
|
2024-08-19 10:01:07 +05:00
|
|
|
|
/// Получить состояние определенной задачи
|
2022-10-11 17:04:26 +05:00
|
|
|
|
/// </summary>
|
2024-08-19 10:01:07 +05:00
|
|
|
|
/// <param name="idTelemetry"></param>
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
JobDto? GetOrDefaultState(int idTelemetry);
|
2022-10-11 17:04:26 +05:00
|
|
|
|
|
2024-08-19 10:01:07 +05:00
|
|
|
|
/// <summary>
|
|
|
|
|
/// Создать задачу прореживанию архива и добавить её в очередь на выполнение
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="idTelemetry">телеметрия для прореживания</param>
|
|
|
|
|
/// <param name="onProgress">колбек процесса выполнения</param>
|
|
|
|
|
/// <param name="jobDto">созданная задача или задача из очереди</param>
|
|
|
|
|
/// <returns>задача добавлена == true</returns>
|
|
|
|
|
bool TryEnqueueRediceSamplingJob(int idTelemetry, OnJobProgressDelagate onProgress, out JobDto jobDto);
|
2022-10-11 17:04:26 +05:00
|
|
|
|
}
|