Fix styling, job endpoints, and infinite worker loops
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user