add request size counters
This commit is contained in:
@@ -13,13 +13,15 @@ public class CacheController : ControllerBase
|
||||
private readonly RequestFileStreamResultFactory _requestFileStreamResultFactory;
|
||||
private readonly CachedFileProvider _cachedFileProvider;
|
||||
private readonly RequestQueueService _requestQueue;
|
||||
private readonly FileStatisticsService _fileStatisticsService;
|
||||
|
||||
public CacheController(ILogger<CacheController> logger, RequestFileStreamResultFactory requestFileStreamResultFactory,
|
||||
CachedFileProvider cachedFileProvider, RequestQueueService requestQueue) : base(logger)
|
||||
CachedFileProvider cachedFileProvider, RequestQueueService requestQueue, FileStatisticsService fileStatisticsService) : base(logger)
|
||||
{
|
||||
_requestFileStreamResultFactory = requestFileStreamResultFactory;
|
||||
_cachedFileProvider = cachedFileProvider;
|
||||
_requestQueue = requestQueue;
|
||||
_fileStatisticsService = fileStatisticsService;
|
||||
}
|
||||
|
||||
[HttpGet(MareFiles.Cache_Get)]
|
||||
@@ -35,6 +37,8 @@ public class CacheController : ControllerBase
|
||||
var memoryStream = new MemoryStream();
|
||||
var streamWriter = new BinaryWriter(memoryStream);
|
||||
|
||||
long requestSize = 0;
|
||||
|
||||
foreach (var file in request.FileIds)
|
||||
{
|
||||
var fs = await _cachedFileProvider.GetAndDownloadFileStream(file);
|
||||
@@ -43,11 +47,14 @@ public class CacheController : ControllerBase
|
||||
byte[] buffer = new byte[fs.Length];
|
||||
_ = await fs.ReadAsync(buffer, HttpContext.RequestAborted);
|
||||
streamWriter.Write(buffer);
|
||||
requestSize += fs.Length;
|
||||
}
|
||||
|
||||
streamWriter.Flush();
|
||||
memoryStream.Position = 0;
|
||||
|
||||
_fileStatisticsService.LogRequest(requestSize);
|
||||
|
||||
return _requestFileStreamResultFactory.Create(requestId, memoryStream);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user