/// <summary> /// Перегруженная функция, которая чистит список запросов от /// запросов с истёкшим временем <see cref="SyncRequest.Expires"/>. /// </summary> /// <param name="stoppingToken">Токен для отмены операции.</param> protected override async Task ExecuteAsync(CancellationToken stoppingToken) { while (!stoppingToken.IsCancellationRequested) { Logger.LogInformation("ClearingRequests running at: {Time}", DateTime.Now); // удаление элементов с истёкшем временим жизни SyncRequests.RemoveAll(requset => requset.Expires < DateTime.Now); await Task.Delay(TimeDelay); // задержка } }
/// <summary> /// Вызывается при отключении клиента /// </summary> /// <param name="exception">Информация об ошибка, если она была.</param> public override async Task OnDisconnectedAsync(Exception exception) { // удаление всех запросов от клиента SyncRequestsList.RemoveAll(syncReq => syncReq.Sender == Context.UserIdentifier); await base.OnDisconnectedAsync(exception); }