some file server fixes I guess

break, not return

fix queue processing

fix queue processing, again

fix queue processing, the third

do not use async for queue processing

something
This commit is contained in:
rootdarkarchon
2024-01-13 12:08:49 +01:00
committed by Loporrit
parent d1fcc87f37
commit d40730bca3
5 changed files with 52 additions and 66 deletions

View File

@@ -9,7 +9,6 @@ public class RequestController : ControllerBase
{
private readonly CachedFileProvider _cachedFileProvider;
private readonly RequestQueueService _requestQueue;
private static readonly SemaphoreSlim _parallelRequestSemaphore = new(500);
public RequestController(ILogger<RequestController> logger, CachedFileProvider cachedFileProvider, RequestQueueService requestQueue) : base(logger)
{
@@ -23,15 +22,10 @@ public class RequestController : ControllerBase
{
try
{
await _parallelRequestSemaphore.WaitAsync(HttpContext.RequestAborted);
_requestQueue.RemoveFromQueue(requestId, MareUser, IsPriority);
return Ok();
}
catch (OperationCanceledException) { return BadRequest(); }
finally
{
_parallelRequestSemaphore.Release();
}
}
[HttpPost]
@@ -40,7 +34,6 @@ public class RequestController : ControllerBase
{
try
{
await _parallelRequestSemaphore.WaitAsync(HttpContext.RequestAborted);
foreach (var file in files)
{
_logger.LogDebug("Prerequested file: " + file);
@@ -48,15 +41,11 @@ public class RequestController : ControllerBase
}
Guid g = Guid.NewGuid();
_requestQueue.EnqueueUser(new(g, MareUser, files.ToList()), IsPriority);
await _requestQueue.EnqueueUser(new(g, MareUser, files.ToList()), IsPriority, HttpContext.RequestAborted);
return Ok(g);
}
catch (OperationCanceledException) { return BadRequest(); }
finally
{
_parallelRequestSemaphore.Release();
}
}
[HttpGet]
@@ -66,7 +55,7 @@ public class RequestController : ControllerBase
try
{
if (!_requestQueue.StillEnqueued(requestId, MareUser, IsPriority))
_requestQueue.EnqueueUser(new(requestId, MareUser, files.ToList()), IsPriority);
await _requestQueue.EnqueueUser(new(requestId, MareUser, files.ToList()), IsPriority, HttpContext.RequestAborted);
return Ok();
}
catch (OperationCanceledException) { return BadRequest(); }