diff --git a/IRaCIS.Core.API/IRaCIS.Core.API.csproj b/IRaCIS.Core.API/IRaCIS.Core.API.csproj
index 6f94ee5b8..c6af611a4 100644
--- a/IRaCIS.Core.API/IRaCIS.Core.API.csproj
+++ b/IRaCIS.Core.API/IRaCIS.Core.API.csproj
@@ -86,6 +86,8 @@
+
+
diff --git a/IRaCIS.Core.API/Startup.cs b/IRaCIS.Core.API/Startup.cs
index 6fafd9402..92d6dd52f 100644
--- a/IRaCIS.Core.API/Startup.cs
+++ b/IRaCIS.Core.API/Startup.cs
@@ -114,7 +114,7 @@ namespace IRaCIS.Core.API
//services.AddDistributedMemoryCache();
// hangfire 定时任务框架 有界面,更友好~
- services.AddhangfireSetup(_configuration);
+ //services.AddhangfireSetup(_configuration);
// QuartZ 定时任务框架 使用了hangfire 暂时不用,后续需要可以打开,已经配好
services.AddQuartZSetup(_configuration);
@@ -181,7 +181,7 @@ namespace IRaCIS.Core.API
app.UseLogDashboard("/LogDashboard");
//hangfire
- app.UseHangfireConfig(env);
+ //app.UseHangfireConfig(env);
////暂时废弃
//app.UseHttpReports();
diff --git a/IRaCIS.Core.API/_ServiceExtensions/QuartZSetup.cs b/IRaCIS.Core.API/_ServiceExtensions/QuartZSetup.cs
index bd48c49ab..2f42e8f7c 100644
--- a/IRaCIS.Core.API/_ServiceExtensions/QuartZSetup.cs
+++ b/IRaCIS.Core.API/_ServiceExtensions/QuartZSetup.cs
@@ -1,6 +1,8 @@
锘
+using IRaCIS.Application.Services.BackGroundJob;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
+using Quartz;
namespace IRaCIS.Core.API
{
@@ -8,37 +10,35 @@ namespace IRaCIS.Core.API
{
public static void AddQuartZSetup(this IServiceCollection services, IConfiguration configuration)
{
- //services.AddTransient();
+ services.AddTransient();
- //services.AddQuartz(q =>
- //{
- // // base quartz scheduler, job and trigger configuration
+ services.AddQuartz(q =>
+ {
+ // base quartz scheduler, job and trigger configuration
- // // as of 3.3.2 this also injects scoped services (like EF DbContext) without problems
- // q.UseMicrosoftDependencyInjectionJobFactory();
+ // as of 3.3.2 this also injects scoped services (like EF DbContext) without problems
+ q.UseMicrosoftDependencyInjectionJobFactory();
- // // 鍩烘湰Quartz璋冨害鍣ㄣ佷綔涓氬拰瑙﹀彂鍣ㄩ厤缃
- // var jobKey = new JobKey("RegularTrialWork", "regularWorkGroup");
- // q.AddJob(jobKey, j => j
- // .WithDescription("Trial regular work")
- // );
- // q.AddTrigger(t => t
- // .WithIdentity("TrialStatusTrigger")
- // .ForJob(jobKey)
- // //.StartNow()
- // //.WithSimpleSchedule(x => x.WithInterval(TimeSpan.FromSeconds(15))//寮濮嬬鏁 15s
- // // .RepeatForever())//鎸佺画宸ヤ綔
- // .WithCronSchedule("0 0 0/2 * * ?")//姣忓皬鏃舵墽琛屼竴娆
- // .WithDescription("My regular trial work trigger")
- // );
- //});
+ // 鍩烘湰Quartz璋冨害鍣ㄣ佷綔涓氬拰瑙﹀彂鍣ㄩ厤缃
+ var jobKey = new JobKey("RegularTrialWork", "regularWorkGroup");
+ q.AddJob(jobKey, j => j
+ .WithDescription("Trial regular work")
+ );
+ q.AddTrigger(t => t
+ .WithIdentity("TrialStatusTrigger")
+ .ForJob(jobKey)
+
+ .WithCronSchedule("0 0 * * * ?")
+ .WithDescription("My regular trial work trigger")
+ );
+ });
- //// ASP.NET Core hosting
- //services.AddQuartzServer(options =>
- //{
- // // when shutting down we want jobs to complete gracefully
- // options.WaitForJobsToComplete = true;
- //});
+ // ASP.NET Core hosting
+ services.AddQuartzHostedService(options =>
+ {
+ // when shutting down we want jobs to complete gracefully
+ options.WaitForJobsToComplete = true;
+ });
}
}
diff --git a/IRaCIS.Core.Application/BackGroundJob/CacheTrialStatusQuartZJob.cs b/IRaCIS.Core.Application/BackGroundJob/CacheTrialStatusQuartZJob.cs
index dcc0f40ac..e3be27479 100644
--- a/IRaCIS.Core.Application/BackGroundJob/CacheTrialStatusQuartZJob.cs
+++ b/IRaCIS.Core.Application/BackGroundJob/CacheTrialStatusQuartZJob.cs
@@ -7,6 +7,7 @@ using IRaCIS.Core.Infra.EFCore;
using IRaCIS.Core.Domain.Models;
using Microsoft.Extensions.Logging;
using Quartz;
+using IRaCIS.Core.Domain.Share;
namespace IRaCIS.Application.Services.BackGroundJob
{
@@ -17,36 +18,55 @@ namespace IRaCIS.Application.Services.BackGroundJob
private readonly IRepository _trialRepository;
private readonly IEasyCachingProvider _provider;
private readonly ILogger _logger;
+ private readonly IRepository _systemAnonymizationRepository;
- public CacheTrialStatusQuartZJob(IRepository trialRepository, IEasyCachingProvider provider,ILogger logger)
+ public CacheTrialStatusQuartZJob(IRepository trialRepository, IEasyCachingProvider provider,ILogger logger, IRepository systemAnonymizationRepository)
{
_trialRepository = trialRepository;
_provider = provider;
_logger = logger;
+ _systemAnonymizationRepository = systemAnonymizationRepository;
}
- public Task Execute(IJobExecutionContext context)
+ public async Task Execute(IJobExecutionContext context)
{
_logger.LogInformation($"寮濮嬫墽琛孮uartZ瀹氭椂浠诲姟浣滀笟");
try
{
- var list = _trialRepository.Select(t => new { TrialId = t.Id, TrialStatusStr = t.TrialStatusStr })
- .ToList();
+ await MemoryCacheTrialStatus();
+
+ await MemoryCacheAnonymizeData();
- list.ForEach(t => _provider.Set(t.TrialId.ToString(), t.TrialStatusStr, TimeSpan.FromDays(1)));
-
}
catch (Exception e)
{
_logger.LogError($" 鏌ヨ鍜岀紦瀛樿繃绋嬪嚭鐜板紓甯"+e.Message);
}
_logger.LogInformation("QuartZ瀹氭椂浠诲姟浣滀笟缁撴潫");
- return Task.CompletedTask;
}
-
-
+ public async Task MemoryCacheTrialStatus()
+ {
+ var list = await _trialRepository.Select(t => new { TrialId = t.Id, TrialStatusStr = t.TrialStatusStr })
+ .ToListAsync();
+
+ list.ForEach(t => _provider.Set(t.TrialId.ToString(), t.TrialStatusStr, TimeSpan.FromDays(7)));
+
+ }
+
+ public async Task MemoryCacheAnonymizeData()
+ {
+ var systemAnonymizationList = await _systemAnonymizationRepository.Where(t => t.IsEnable).ToListAsync();
+
+ _provider.Set(StaticData.Anonymize.Anonymize_AddFixedFiled, systemAnonymizationList.Where(t => t.IsAdd && t.IsFixed).ToList(), TimeSpan.FromDays(7));
+ _provider.Set(StaticData.Anonymize.Anonymize_AddIRCInfoFiled, systemAnonymizationList.Where(t => t.IsAdd && t.IsFixed == false).ToList(), TimeSpan.FromDays(7));
+ _provider.Set(StaticData.Anonymize.Anonymize_FixedField, systemAnonymizationList.Where(t => t.IsAdd == false && t.IsFixed).ToList(), TimeSpan.FromDays(7));
+ _provider.Set(StaticData.Anonymize.Anonymize_IRCInfoField, systemAnonymizationList.Where(t => t.IsAdd == false && t.IsFixed == false).ToList(), TimeSpan.FromDays(7));
+ }
+
+
+
}
}
\ No newline at end of file
diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
index 4a10fe0d5..e9b41531c 100644
--- a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
+++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
@@ -680,6 +680,11 @@
InternationalizationService
+
+
+ PublishLogService
+
+
TrialEmailNoticeConfigService
@@ -2663,6 +2668,16 @@
+
+
+ VisitId
+
+
+
+
+ VisitId
+
+
鏄惁搴旂敤
@@ -7975,6 +7990,15 @@
InternationalizationAddOrEdit 鍒楄〃鏌ヨ鍙傛暟妯″瀷
+
+ PublishLogView 鍒楄〃瑙嗗浘妯″瀷
+
+
+ PublishLogQuery 鍒楄〃鏌ヨ鍙傛暟妯″瀷
+
+
+ PublishLogAddOrEdit 鍒楄〃鏌ヨ鍙傛暟妯″瀷
+
TrialEmailNoticeConfigView 鍒楄〃瑙嗗浘妯″瀷
@@ -8840,6 +8864,11 @@
IInternationalizationService
+
+
+ IPublishLogService
+
+
ITrialEmailNoticeConfigService