feat(api, Core, TaskReconciliationWorker): Воркер обработки зависших задач. Доработка логики.

This commit is contained in:
Mikhail Trubnikov
2026-04-23 16:08:16 +10:00
parent 7da2265d1c
commit e8086b3a7d
13 changed files with 275 additions and 6 deletions

View File

@@ -98,12 +98,15 @@ namespace PARR.Core.Services.Task.Implementations
return await taskRepository.Get()
.Where(t =>
t.TypeCode == taskType.Code && t.DateModified < timeoutThreshold &&
(
//t.TypeCode == taskType.Code && t.DateModified < timeoutThreshold &&
t.TypeCode == taskType.Code
// если это вновь созданная задача и она упала, то у нее может не быть DateModified, тогда сравним с DateCreated
&& (t.DateModified ?? t.DateCreated) < timeoutThreshold
&& (
// Зависла в Processing
t.StatusCode == TaskItemStatusEnum.Processing
//Зависли в Pending
|| (t.StatusCode == TaskItemStatusEnum.Pending && t.RetryCount > 0)
|| (t.StatusCode == TaskItemStatusEnum.Pending /*&& t.RetryCount > 0*/)
)
)
.OrderBy(t => t.DateModified) // Сначала самые старые