feat(api, Core, Domain, Dal): Для entity моделей, для DateModified создан атрибут ManualControl - отключает автоматическое управление датой. TaskReconciliationService - сервис по управлению задачами в статусах ошибки, зависла. ITaskMqSettingsProvider - провайдер для управления настройками MQ в зависимости от TaskType

This commit is contained in:
Mikhail Trubnikov
2026-04-22 16:13:23 +10:00
parent 001c09edaa
commit 7da2265d1c
16 changed files with 465 additions and 30 deletions

View File

@@ -0,0 +1,55 @@
namespace PARR.Core.Services.Task.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;
}
}