缓存修改
							parent
							
								
									0272c87213
								
							
						
					
					
						commit
						90ce05e6f0
					
				| 
						 | 
				
			
			@ -10,6 +10,7 @@ using IRaCIS.Core.Application.Contracts.Dicom.DTO;
 | 
			
		|||
using IRaCIS.Core.Application.Filter;
 | 
			
		||||
using IRaCIS.Core.Application.Helper;
 | 
			
		||||
using IRaCIS.Core.Application.MediatR.CommandAndQueries;
 | 
			
		||||
using IRaCIS.Core.Application.MediatR.Handlers;
 | 
			
		||||
using IRaCIS.Core.Application.Service;
 | 
			
		||||
using IRaCIS.Core.Application.Service.Reading.Dto;
 | 
			
		||||
using IRaCIS.Core.Domain.Models;
 | 
			
		||||
| 
						 | 
				
			
			@ -207,11 +208,13 @@ namespace IRaCIS.Core.API.Controllers
 | 
			
		|||
 | 
			
		||||
        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)
 | 
			
		||||
        {
 | 
			
		||||
            _provider = provider;
 | 
			
		||||
            _hostEnvironment = hostEnvironment;
 | 
			
		||||
            _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("请求到达接口");
 | 
			
		||||
 | 
			
		||||
            if (!HttpContext.Request.HasFormContentType ||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -30,7 +30,8 @@ namespace IRaCIS.Core.API
 | 
			
		|||
            //BackgroundJob.Enqueue<ICacheTrialStatusJob>(t => t.MemoryCacheTrialStatus());
 | 
			
		||||
 | 
			
		||||
            //周期性任务,1天执行一次
 | 
			
		||||
            RecurringJob.AddOrUpdate<ICacheTrialStatusJob>(t => t.MemoryCacheTrialStatus(), Cron.Daily);
 | 
			
		||||
 | 
			
		||||
            RecurringJob.AddOrUpdate<IIRaCISCacheHangfireJob>(t => t.MemoryCacheTrialStatus(), Cron.Daily);
 | 
			
		||||
 | 
			
		||||
            #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