缓存修改
							parent
							
								
									0272c87213
								
							
						
					
					
						commit
						90ce05e6f0
					
				| 
						 | 
					@ -10,6 +10,7 @@ using IRaCIS.Core.Application.Contracts.Dicom.DTO;
 | 
				
			||||||
using IRaCIS.Core.Application.Filter;
 | 
					using IRaCIS.Core.Application.Filter;
 | 
				
			||||||
using IRaCIS.Core.Application.Helper;
 | 
					using IRaCIS.Core.Application.Helper;
 | 
				
			||||||
using IRaCIS.Core.Application.MediatR.CommandAndQueries;
 | 
					using IRaCIS.Core.Application.MediatR.CommandAndQueries;
 | 
				
			||||||
 | 
					using IRaCIS.Core.Application.MediatR.Handlers;
 | 
				
			||||||
using IRaCIS.Core.Application.Service;
 | 
					using IRaCIS.Core.Application.Service;
 | 
				
			||||||
using IRaCIS.Core.Application.Service.Reading.Dto;
 | 
					using IRaCIS.Core.Application.Service.Reading.Dto;
 | 
				
			||||||
using IRaCIS.Core.Domain.Models;
 | 
					using IRaCIS.Core.Domain.Models;
 | 
				
			||||||
| 
						 | 
					@ -207,11 +208,13 @@ namespace IRaCIS.Core.API.Controllers
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        private readonly IRepository _repository;
 | 
					        private readonly IRepository _repository;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        private readonly IEasyCachingProvider _provider;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        public StudyController(IMapper mapper, IUserInfo userInfo, IWebHostEnvironment hostEnvironment, IMediator mediator,
 | 
					        public StudyController(IMapper mapper, IUserInfo userInfo, IWebHostEnvironment hostEnvironment, IMediator mediator, IEasyCachingProvider provider,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            IRepository repository)
 | 
					            IRepository repository)
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
 | 
					            _provider = provider;
 | 
				
			||||||
            _hostEnvironment = hostEnvironment;
 | 
					            _hostEnvironment = hostEnvironment;
 | 
				
			||||||
            _mediator = mediator;
 | 
					            _mediator = mediator;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -237,6 +240,11 @@ namespace IRaCIS.Core.API.Controllers
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            if (_provider.Get<List<SystemAnonymization>>(StaticData.Anonymize.Anonymize_AddFixedFiled).Value==null  )
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                await _mediator.Send(new AnonymizeCacheRequest());
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            //_logger.LogError("请求到达接口");
 | 
					            //_logger.LogError("请求到达接口");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            if (!HttpContext.Request.HasFormContentType ||
 | 
					            if (!HttpContext.Request.HasFormContentType ||
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -30,7 +30,8 @@ namespace IRaCIS.Core.API
 | 
				
			||||||
            //BackgroundJob.Enqueue<ICacheTrialStatusJob>(t => t.MemoryCacheTrialStatus());
 | 
					            //BackgroundJob.Enqueue<ICacheTrialStatusJob>(t => t.MemoryCacheTrialStatus());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            //周期性任务,1天执行一次
 | 
					            //周期性任务,1天执行一次
 | 
				
			||||||
            RecurringJob.AddOrUpdate<ICacheTrialStatusJob>(t => t.MemoryCacheTrialStatus(), Cron.Daily);
 | 
					
 | 
				
			||||||
 | 
					            RecurringJob.AddOrUpdate<IIRaCISCacheHangfireJob>(t => t.MemoryCacheTrialStatus(), Cron.Daily);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            #endregion
 | 
					            #endregion
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,44 +0,0 @@
 | 
				
			||||||
using EasyCaching.Core;
 | 
					 | 
				
			||||||
using Microsoft.Extensions.Logging;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
namespace IRaCIS.Application.Services.BackGroundJob
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public interface ICacheTrialStatusJob
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        Task MemoryCacheTrialStatus();
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    public class CacheTrialStatusHangfireJob: ICacheTrialStatusJob
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        private readonly IRepository<Trial> _trialRepository;
 | 
					 | 
				
			||||||
        private readonly IEasyCachingProvider _provider;
 | 
					 | 
				
			||||||
        private readonly ILogger<CacheTrialStatusHangfireJob> _logger;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        public CacheTrialStatusHangfireJob(IRepository<Trial> trialRepository, IEasyCachingProvider provider,ILogger<CacheTrialStatusHangfireJob> logger)
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            _trialRepository = trialRepository;
 | 
					 | 
				
			||||||
            _provider = provider;
 | 
					 | 
				
			||||||
            _logger = logger;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        public Task MemoryCacheTrialStatus()
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            _logger.LogInformation("hangfire 定时任务开始~");
 | 
					 | 
				
			||||||
            try
 | 
					 | 
				
			||||||
            {
 | 
					 | 
				
			||||||
                var list = _trialRepository.Select(t => new { TrialId = t.Id, TrialStatusStr = t.TrialStatusStr })
 | 
					 | 
				
			||||||
                    .ToList();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                list.ForEach(t => _provider.Set(t.TrialId.ToString(), t.TrialStatusStr, TimeSpan.FromDays(7)));
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
            catch (Exception e)
 | 
					 | 
				
			||||||
            {
 | 
					 | 
				
			||||||
                _logger.LogError("hangfire 定时任务执行失败"+e.Message);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
           
 | 
					 | 
				
			||||||
            _logger.LogInformation("hangfire 定时任务执行结束");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            return Task.CompletedTask;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,65 @@
 | 
				
			||||||
 | 
					using EasyCaching.Core;
 | 
				
			||||||
 | 
					using IRaCIS.Core.Domain.Share;
 | 
				
			||||||
 | 
					using Microsoft.Extensions.Logging;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					namespace IRaCIS.Application.Services.BackGroundJob
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public interface IIRaCISCacheHangfireJob
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        Task MemoryCacheTrialStatus();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    public class IRaCISCacheHangfireJob: IIRaCISCacheHangfireJob
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        private readonly IRepository<Trial> _trialRepository;
 | 
				
			||||||
 | 
					        private readonly IEasyCachingProvider _provider;
 | 
				
			||||||
 | 
					        private readonly ILogger<IRaCISCacheHangfireJob> _logger;
 | 
				
			||||||
 | 
					        private readonly IRepository<SystemAnonymization> _systemAnonymizationRepository;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        public IRaCISCacheHangfireJob(IRepository<Trial> trialRepository, IRepository<SystemAnonymization> systemAnonymizationRepository,   IEasyCachingProvider provider,ILogger<IRaCISCacheHangfireJob> logger)
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            _trialRepository = trialRepository;
 | 
				
			||||||
 | 
					            _provider = provider;
 | 
				
			||||||
 | 
					            _logger = logger;
 | 
				
			||||||
 | 
					            _systemAnonymizationRepository = systemAnonymizationRepository;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        public async Task MemoryCacheTrialStatus()
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            _logger.LogInformation("hangfire 定时任务开始~");
 | 
				
			||||||
 | 
					            try
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                await CacheTrialStatusAsync();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                await CacheAnonymizeAsync();
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            catch (Exception e)
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                _logger.LogError("hangfire 定时任务执行失败"+e.Message);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					           
 | 
				
			||||||
 | 
					            _logger.LogInformation("hangfire 定时任务执行结束");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        private async Task CacheTrialStatusAsync()
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            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)));
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        private async Task CacheAnonymizeAsync()
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            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));
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
		Loading…
	
		Reference in New Issue