perf(websocket): Fix scope leak and add adaptive polling

This commit is contained in:
destrodxbad 2025-11-18 02:01:41 +01:00
parent 371a13e060
commit a7bb8da1d5

View file

@ -14,14 +14,15 @@ public class WebsocketsUpdater(ILogger<WebsocketsUpdater> logger, IServiceProvid
await Task.Delay(1000, stoppingToken);
}
var scope = serviceProvider.CreateScope();
var remoteService = scope.ServiceProvider.GetRequiredService<RemoteService>();
logger.LogInformation("WebsocketsUpdater started.");
while (!stoppingToken.IsCancellationRequested)
{
try
{
using var scope = serviceProvider.CreateScope();
var remoteService = scope.ServiceProvider.GetRequiredService<RemoteService>();
await remoteService.Update();
}
catch (Exception ex)
@ -29,7 +30,11 @@ public class WebsocketsUpdater(ILogger<WebsocketsUpdater> logger, IServiceProvid
logger.LogError(ex, $"Unexpected error occurred in WebsocketsUpdater: {ex.Message}");
}
await Task.Delay(TimeSpan.FromSeconds(1), stoppingToken);
var delay = RdtHub.HasConnections
? TimeSpan.FromSeconds(1)
: TimeSpan.FromSeconds(5);
await Task.Delay(delay, stoppingToken);
}
logger.LogInformation("WebsocketsUpdater stopped.");