potentially fix staticfileserver crashes

This commit is contained in:
rootdarkarchon
2023-04-08 13:59:20 +02:00
parent 89a384005e
commit abda79a15a

View File

@@ -148,33 +148,40 @@ public class RequestQueueService : IHostedService
}, },
async (i) => async (i) =>
{ {
if (!_queue.Any()) return; try
if (_userQueueRequests[i] != null && !_userQueueRequests[i].IsActive && _userQueueRequests[i].ExpirationDate < DateTime.UtcNow) _userQueueRequests[i] = null;
if (_userQueueRequests[i] == null)
{ {
bool enqueued = false; if (!_queue.Any()) return;
while (!enqueued)
{
if (_queue.TryDequeue(out var request))
{
if (_queueRemoval.TryGetValue(request.RequestId, out string user) && string.Equals(user, request.User, StringComparison.Ordinal))
{
_logger.LogDebug("Request cancelled: {requestId} by {user}", request.RequestId, user);
_queueRemoval.Remove(request.RequestId, out _);
continue;
}
await DequeueIntoSlotAsync(request, i).ConfigureAwait(false); if (_userQueueRequests[i] != null && !_userQueueRequests[i].IsActive && _userQueueRequests[i].ExpirationDate < DateTime.UtcNow) _userQueueRequests[i] = null;
enqueued = true;
} if (_userQueueRequests[i] == null)
else {
bool enqueued = false;
while (!enqueued)
{ {
enqueued = true; if (_queue.TryDequeue(out var request))
{
if (_queueRemoval.TryGetValue(request.RequestId, out string user) && string.Equals(user, request.User, StringComparison.Ordinal))
{
_logger.LogDebug("Request cancelled: {requestId} by {user}", request.RequestId, user);
_queueRemoval.Remove(request.RequestId, out _);
continue;
}
await DequeueIntoSlotAsync(request, i).ConfigureAwait(false);
enqueued = true;
}
else
{
enqueued = true;
}
} }
} }
} }
catch (Exception ex)
{
_logger.LogWarning(ex, "Error during inside queue processing");
}
}); });
} }
catch (Exception ex) catch (Exception ex)