后端长时间下载,临时token 续期bug 修复
continuous-integration/drone/push Build is running
Details
continuous-integration/drone/push Build is running
Details
parent
ff2c619df7
commit
8b046e61ab
|
|
@ -220,7 +220,7 @@ public class OSSService(IOptionsMonitor<ObjectStoreServiceOptions> options,
|
||||||
public object result { get; private set; }
|
public object result { get; private set; }
|
||||||
|
|
||||||
|
|
||||||
|
private static readonly object _tokenLock = new();
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 将指定前缀下的所有现有文件立即转为目标存储类型
|
/// 将指定前缀下的所有现有文件立即转为目标存储类型
|
||||||
|
|
@ -934,32 +934,52 @@ public class OSSService(IOptionsMonitor<ObjectStoreServiceOptions> options,
|
||||||
//后端批量上传 或者下载,不每个文件获取临时token
|
//后端批量上传 或者下载,不每个文件获取临时token
|
||||||
private void BackBatchGetToken()
|
private void BackBatchGetToken()
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if (ObjectStoreServiceOptions.ObjectStoreUse == "AliyunOSS")
|
if (ObjectStoreServiceOptions.ObjectStoreUse == "AliyunOSS")
|
||||||
{
|
{
|
||||||
if (AliyunOSSTempToken == null)
|
if (AliyunOSSTempToken != null && AliyunOSSTempToken.Expiration > DateTime.UtcNow.AddMinutes(15))
|
||||||
{
|
{
|
||||||
GetObjectStoreTempToken();
|
return;
|
||||||
}
|
|
||||||
//token 过期了
|
|
||||||
if (AliyunOSSTempToken?.Expiration.AddSeconds(10) <= DateTime.Now)
|
|
||||||
{
|
|
||||||
GetObjectStoreTempToken();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
lock (_tokenLock)
|
||||||
|
{
|
||||||
|
if (AliyunOSSTempToken == null ||
|
||||||
|
AliyunOSSTempToken.Expiration <= DateTime.UtcNow.AddMinutes(15))
|
||||||
|
{
|
||||||
|
GetObjectStoreTempToken();
|
||||||
|
|
||||||
|
Log.Logger.Warning("后端获取阿里云临时 Token");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
else if (ObjectStoreServiceOptions.ObjectStoreUse == "AWS")
|
else if (ObjectStoreServiceOptions.ObjectStoreUse == "AWS")
|
||||||
{
|
{
|
||||||
if (AWSTempToken == null)
|
|
||||||
|
|
||||||
|
if (AWSTempToken != null && AWSTempToken.Expiration > DateTime.UtcNow.AddMinutes(15))
|
||||||
{
|
{
|
||||||
GetObjectStoreTempToken();
|
return;
|
||||||
}
|
}
|
||||||
//token 过期了
|
|
||||||
if (AWSTempToken.Expiration?.AddSeconds(10) <= DateTime.Now)
|
lock (_tokenLock)
|
||||||
{
|
{
|
||||||
GetObjectStoreTempToken();
|
if (AWSTempToken == null ||
|
||||||
|
AWSTempToken.Expiration <= DateTime.UtcNow.AddMinutes(15))
|
||||||
|
{
|
||||||
|
GetObjectStoreTempToken();
|
||||||
|
|
||||||
|
Log.Logger.Warning("后端获取s3 临时 Token");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -225,14 +225,16 @@ namespace IRaCIS.Core.Application.Service
|
||||||
|
|
||||||
var downloadVisits = MiniExcel.Query<SubjectVisitExcel>(Path.Combine(rootFolder, "download.xlsx")).ToList().Where(t => t.SubjectCode.IsNotNullOrEmpty() && t.VisitName.IsNotNullOrEmpty()).ToList();
|
var downloadVisits = MiniExcel.Query<SubjectVisitExcel>(Path.Combine(rootFolder, "download.xlsx")).ToList().Where(t => t.SubjectCode.IsNotNullOrEmpty() && t.VisitName.IsNotNullOrEmpty()).ToList();
|
||||||
|
|
||||||
downloadVisits= downloadVisits.Where(t => !oldVisits.Any(old => old.VisitNum == t.VisitNum && old.SubjectCode == t.SubjectCode &&
|
downloadVisits = downloadVisits.Where(t => !oldVisits.Any(old => old.VisitNum == t.VisitNum && old.SubjectCode == t.SubjectCode &&
|
||||||
old.VisitName.Trim().ToLower() == t.VisitName.Trim().ToLower())).ToList();
|
old.VisitName.Trim().ToLower() == t.VisitName.Trim().ToLower())).ToList();
|
||||||
|
|
||||||
var downloadJobs = new List<DownloadJob>();
|
var downloadJobs = new List<DownloadJob>();
|
||||||
|
|
||||||
var skipCount = 0;
|
var skipCount = 0;
|
||||||
|
var visitIndex = 0;
|
||||||
foreach (var downloadVisit in downloadVisits)
|
foreach (var downloadVisit in downloadVisits)
|
||||||
{
|
{
|
||||||
|
visitIndex++;
|
||||||
var downloadInfo = _trialRepository.Where(t => t.Id == trialId).Select(t => new
|
var downloadInfo = _trialRepository.Where(t => t.Id == trialId).Select(t => new
|
||||||
{
|
{
|
||||||
t.ResearchProgramNo,
|
t.ResearchProgramNo,
|
||||||
|
|
@ -306,7 +308,7 @@ namespace IRaCIS.Core.Application.Service
|
||||||
if (existVisits.Any(old => old.VisitNum == downloadVisit.VisitNum && old.SubjectCode == downloadVisit.SubjectCode &&
|
if (existVisits.Any(old => old.VisitNum == downloadVisit.VisitNum && old.SubjectCode == downloadVisit.SubjectCode &&
|
||||||
old.VisitName.Trim().ToLower() == downloadVisit.VisitName.Trim().ToLower()))
|
old.VisitName.Trim().ToLower() == downloadVisit.VisitName.Trim().ToLower()))
|
||||||
{
|
{
|
||||||
Log.Logger.Warning($"Excel显示已下载,跳过当前访视:{downloadVisit.SubjectCode} {downloadVisit.VisitName} {downloadVisit.VisitNum}");
|
Log.Logger.Warning($"[{visitIndex}] Excel显示已下载,跳过当前访视:{downloadVisit.SubjectCode} {downloadVisit.VisitName} {downloadVisit.VisitNum}");
|
||||||
skipCount++;
|
skipCount++;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
@ -322,12 +324,12 @@ namespace IRaCIS.Core.Application.Service
|
||||||
{
|
{
|
||||||
if (visitItem.StudyList.Count() == 0 && visitItem.NoneDicomStudyList.Count() == 0)
|
if (visitItem.StudyList.Count() == 0 && visitItem.NoneDicomStudyList.Count() == 0)
|
||||||
{
|
{
|
||||||
Log.Logger.Warning($"查询无检查,跳过当前访视:{downloadVisit.SubjectCode} {downloadVisit.VisitName} {downloadVisit.VisitNum}");
|
Log.Logger.Warning($"[{visitIndex}]查询无检查,跳过当前访视:{downloadVisit.SubjectCode} {downloadVisit.VisitName} {downloadVisit.VisitNum}");
|
||||||
skipCount++;
|
skipCount++;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
Log.Logger.Warning($"开始获取访视信息准备下载任务:{visitItem.SubjectCode} {visitItem.VisitName} {visitItem.VisitNum}");
|
Log.Logger.Warning($"[{visitIndex}]开始获取访视信息准备下载任务:{visitItem.SubjectCode} {visitItem.VisitName} {visitItem.VisitNum}");
|
||||||
|
|
||||||
foreach (var studyInfo in visitItem.StudyList)
|
foreach (var studyInfo in visitItem.StudyList)
|
||||||
{
|
{
|
||||||
|
|
@ -485,7 +487,7 @@ namespace IRaCIS.Core.Application.Service
|
||||||
|
|
||||||
Action = async () =>
|
Action = async () =>
|
||||||
{
|
{
|
||||||
Log.Logger.Warning($" {DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}开启另外线程压缩访视:{visitItem.SubjectCode} {visitItem.VisitName} {visitItem.VisitNum}");
|
Log.Logger.Warning($"[{visitIndex}] {DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}开启另外线程压缩访视:{visitItem.SubjectCode} {visitItem.VisitName} {visitItem.VisitNum}");
|
||||||
|
|
||||||
string zipPath = visitFolderPath + ".zip";
|
string zipPath = visitFolderPath + ".zip";
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue