feat(core): WorkloadCacheService - логика

This commit is contained in:
Mikhail Trubnikov
2026-04-30 15:10:35 +10:00
parent eb78dfd6a8
commit 238244790b
17 changed files with 59 additions and 35 deletions

View File

@@ -0,0 +1,55 @@
namespace PARR.Core.Services.TaskServices.Models
{
/// <summary>
/// Отчет о выполнении Reconciliation Job.
/// Используется для мониторинга и логирования.
/// </summary>
internal class ReconciliationReport
{
/// <summary>
/// Время начала выполнения
/// </summary>
public DateTimeOffset StartedAt { get; set; }
/// <summary>
/// Время завершения выполнения
/// </summary>
public DateTimeOffset CompletedAt { get; set; }
/// <summary>
/// Сколько задач проверено
/// </summary>
public int CheckedCount { get; set; }
/// <summary>
/// Сколько задач исправлено (переведено в retry или failed)
/// </summary>
public int FixedCount { get; set; }
/// <summary>
/// Сколько задач отправлено на retry
/// </summary>
public int RetriedCount { get; set; }
/// <summary>
/// Сколько задач переведено в финальный failed
/// </summary>
public int FailedCount { get; set; }
/// <summary>
/// Сообщения/ошибки (для логирования)
/// </summary>
public List<string> Messages { get; set; } = new List<string>();
/// <summary>
/// Длительность выполнения
/// </summary>
public TimeSpan Duration => CompletedAt - StartedAt;
/// <summary>
/// Были ли какие-то действия (повторные отправки, перевод в ошибку)
/// </summary>
public bool HasChanged => FixedCount > 0;
}
}