diff --git a/MareSynchronosServer/MareSynchronosStaticFilesServer/Services/RequestQueueService.cs b/MareSynchronosServer/MareSynchronosStaticFilesServer/Services/RequestQueueService.cs index a408c42..280a1fb 100644 --- a/MareSynchronosServer/MareSynchronosStaticFilesServer/Services/RequestQueueService.cs +++ b/MareSynchronosServer/MareSynchronosStaticFilesServer/Services/RequestQueueService.cs @@ -98,7 +98,7 @@ public class RequestQueueService : IHostedService public Task StartAsync(CancellationToken cancellationToken) { - _queueTimer = new System.Timers.Timer(250); + _queueTimer = new System.Timers.Timer(500); _queueTimer.Elapsed += ProcessQueue; _queueTimer.AutoReset = true; _queueTimer.Start(); @@ -156,20 +156,30 @@ public class RequestQueueService : IHostedService while (true) { - if (_priorityQueue.TryDequeue(out var prioRequest)) + if (_priorityQueue.TryPeek(out var prioRequest)) { - if (prioRequest.IsCancelled) continue; + if (prioRequest.IsCancelled) + { + _priorityQueue.TryDequeue(out var _); + continue; + } if (_cachedFileProvider.AnyFilesDownloading(prioRequest.FileIds)) continue; - DequeueIntoSlot(prioRequest, i); + _priorityQueue.TryDequeue(out var priorityRequest); + DequeueIntoSlot(priorityRequest, i); break; } - if (_queue.TryDequeue(out var request)) + if (_queue.TryPeek(out var request)) { - if (request.IsCancelled) continue; + if (request.IsCancelled) + { + _queue.TryDequeue(out var _); + continue; + } if (_cachedFileProvider.AnyFilesDownloading(request.FileIds)) continue; + _queue.TryDequeue(out var priorityRequest); DequeueIntoSlot(request, i); break; }