potentially fix staticfileserver crashes
This commit is contained in:
@@ -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)
|
||||||
|
|||||||
Reference in New Issue
Block a user