修复上传业务缓存删除逻辑

This commit is contained in:
Kimdiego2098
2024-02-02 14:26:00 +08:00
parent 23ae85fc9c
commit a6596042b7

View File

@@ -43,7 +43,7 @@ public static class LiteDBCacheUtil
var dir = GetFilePath(id);
var fileStart = GetFileStartName(typeName);
var maxNum = GetMaxNumFileName(id, typeName);
var fullName = dir.CombinePath($"{fileStart}{maxNum}{ex}");
var fullName = dir.CombinePath($"{fileStart}_{maxNum}{ex}");
if (isDeleteRule)
{
//磁盘使用率限制
@@ -59,9 +59,14 @@ public static class LiteDBCacheUtil
foreach (var d in dirs)
{
string[] files = Directory.GetFiles(d);
//如果文件数量小于4的退出循环
if (files.Length < 4)
{
break;
}
//数量超限就删除旧文件
//按文件更改时间降序排序
var sortedFiles = files.OrderByDescending(file => File.GetLastWriteTime(file));
//按文件更改时间排序
var sortedFiles = files.OrderBy(file => File.GetLastWriteTime(file)).ToArray();
// 需要删除的文件数量
int filesToDeleteCount = files.Length - Math.Max(2, (int)(files.Length * 0.1));
@@ -69,14 +74,14 @@ public static class LiteDBCacheUtil
// 删除较旧的文件
for (int i = 0; i < filesToDeleteCount; i++)
{
var fileName = sortedFiles.ElementAt(i);
var fileName = sortedFiles[i];
if (_dict.TryGetValue(fileName, out object cache1))
{
DisposeAndDeleteFile(fileName, cache1);
}
else
{
DeleteFile(fullName);
DeleteFile(fileName);
}
}
}
@@ -90,7 +95,7 @@ public static class LiteDBCacheUtil
{
//数量超限就删除旧文件
//按文件更改时间降序排序
var sortedFiles = files.OrderByDescending(file => File.GetLastWriteTime(file));
var sortedFiles = files.OrderBy(file => File.GetLastWriteTime(file)).ToArray();
// 需要删除的文件数量
int filesToDeleteCount = files.Length - LiteDBCacheUtil.config.MaxFileCount;
@@ -98,14 +103,14 @@ public static class LiteDBCacheUtil
// 删除较旧的文件
for (int i = 0; i < filesToDeleteCount; i++)
{
var fileName = sortedFiles.ElementAt(i);
var fileName = sortedFiles[i];
if (_dict.TryGetValue(fileName, out object cache1))
{
DisposeAndDeleteFile(fileName, cache1);
}
else
{
DeleteFile(fullName);
DeleteFile(fileName);
}
}
}
@@ -126,7 +131,7 @@ public static class LiteDBCacheUtil
if (mb1 > LiteDBCacheUtil.config.MaxFileLength)
{
//大小超限就返回新的文件
var newFullName = dir.CombinePath($"{fileStart}{maxNum + 1}{ex}");
var newFullName = dir.CombinePath($"{fileStart}_{maxNum + 1}{ex}");
{
if (_dict.TryGetValue(fullName, out object cache1))
{
@@ -239,14 +244,14 @@ public static class LiteDBCacheUtil
var fileStart = GetFileStartName(typeName);
//搜索全部符合条件的文件
if (!File.Exists(dir.CombinePath($"{fileStart}{ex}")))
if (!File.Exists(dir.CombinePath($"{fileStart}_{ex}")))
{
return null;
}
var index = 1;
while (true)
{
var newFileName = dir.CombinePath($"{fileStart}{index}{ex}");
var newFileName = dir.CombinePath($"{fileStart}_{index}{ex}");
if (System.IO.File.Exists(newFileName))
{
index++;