Fix styling, job endpoints, and infinite worker loops

This commit is contained in:
Richard
2026-07-07 09:21:37 +02:00
parent 10eefd3546
commit 2c7c643fdb
4 changed files with 19 additions and 9 deletions
@@ -27,19 +27,22 @@ public class TraderAnalyticsWorker : BackgroundService
{
try
{
await RunAnalyticsAsync(ct);
var processedCount = await RunAnalyticsAsync(ct);
if (processedCount == 0)
{
_logger.LogInformation("TraderAnalyticsWorker sleeping for 1 minute...");
await Task.Delay(TimeSpan.FromMinutes(1), ct);
}
}
catch (Exception ex)
{
_logger.LogError(ex, "Error in TraderAnalyticsWorker");
await Task.Delay(TimeSpan.FromMinutes(1), ct);
}
_logger.LogInformation("TraderAnalyticsWorker sleeping for 2 hours...");
await Task.Delay(TimeSpan.FromHours(2), ct);
}
}
private async Task RunAnalyticsAsync(CancellationToken ct)
private async Task<int> RunAnalyticsAsync(CancellationToken ct)
{
List<int> traderIds = new List<int>();
Domain.Entities.BackgroundJob? activeJob = null;
@@ -104,8 +107,9 @@ public class TraderAnalyticsWorker : BackgroundService
scoreObj.CalculatedAt = DateTime.UtcNow;
trader.CurrentScore = scoreObj;
await traderRepo.UpdateAsync(trader, ct);
}
trader.LastAnalyzedAt = DateTime.UtcNow;
await traderRepo.UpdateAsync(trader, ct);
}
if (activeJob != null && activeJob.TraderId == id)
@@ -138,5 +142,7 @@ public class TraderAnalyticsWorker : BackgroundService
{
_logger.LogInformation("Trader analytics update complete.");
}
return traderIds.Count;
}
}