File Cache Checks
Reviewed-on: #35
This commit was merged in pull request #35.
This commit is contained in:
@@ -189,7 +189,14 @@ public sealed class FileCacheManager : IHostedService
|
|||||||
|
|
||||||
Parallel.ForEach(allEntities, entity =>
|
Parallel.ForEach(allEntities, entity =>
|
||||||
{
|
{
|
||||||
cacheDict[entity.PrefixedFilePath] = entity;
|
if (entity != null && entity.PrefixedFilePath != null)
|
||||||
|
{
|
||||||
|
cacheDict[entity.PrefixedFilePath] = entity;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
_logger.LogWarning("Null FileCacheEntity or PrefixedFilePath encountered in cache population: {entity}", entity);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
var cleanedPaths = new ConcurrentDictionary<string, string>(StringComparer.OrdinalIgnoreCase);
|
var cleanedPaths = new ConcurrentDictionary<string, string>(StringComparer.OrdinalIgnoreCase);
|
||||||
@@ -253,6 +260,7 @@ public sealed class FileCacheManager : IHostedService
|
|||||||
{
|
{
|
||||||
if (_fileCaches.TryGetValue(hash, out var caches))
|
if (_fileCaches.TryGetValue(hash, out var caches))
|
||||||
{
|
{
|
||||||
|
_logger.LogTrace("Removing from DB: {hash} => {path}", hash, prefixedFilePath);
|
||||||
var removedCount = caches?.RemoveAll(c => string.Equals(c.PrefixedFilePath, prefixedFilePath, StringComparison.Ordinal));
|
var removedCount = caches?.RemoveAll(c => string.Equals(c.PrefixedFilePath, prefixedFilePath, StringComparison.Ordinal));
|
||||||
_logger.LogTrace("Removed from DB: {count} file(s) with hash {hash} and file cache {path}", removedCount, hash, prefixedFilePath);
|
_logger.LogTrace("Removed from DB: {count} file(s) with hash {hash} and file cache {path}", removedCount, hash, prefixedFilePath);
|
||||||
|
|
||||||
@@ -397,6 +405,12 @@ public sealed class FileCacheManager : IHostedService
|
|||||||
|
|
||||||
private FileCacheEntity? Validate(FileCacheEntity fileCache)
|
private FileCacheEntity? Validate(FileCacheEntity fileCache)
|
||||||
{
|
{
|
||||||
|
if (string.IsNullOrWhiteSpace(fileCache.ResolvedFilepath))
|
||||||
|
{
|
||||||
|
_logger.LogWarning("FileCacheEntity has empty ResolvedFilepath for hash {hash}, prefixed path {prefixed}", fileCache.Hash, fileCache.PrefixedFilePath);
|
||||||
|
RemoveHashedFile(fileCache.Hash, fileCache.PrefixedFilePath);
|
||||||
|
return null;
|
||||||
|
}
|
||||||
var file = new FileInfo(fileCache.ResolvedFilepath);
|
var file = new FileInfo(fileCache.ResolvedFilepath);
|
||||||
if (!file.Exists)
|
if (!file.Exists)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user