perf(websocket): Fix scope leak and add adaptive polling
This commit is contained in:
parent
371a13e060
commit
a7bb8da1d5
1 changed files with 9 additions and 4 deletions
|
|
@ -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.");
|
||||
|
|
|
|||
Loading…
Reference in a new issue