46 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			C#
		
	
	
			
		
		
	
	
			46 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			C#
		
	
	
using EasyCaching.Core;
 | 
						|
using IRaCIS.Core.Infra.EFCore;
 | 
						|
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();
 | 
						|
                //_provider.GetCount("");
 | 
						|
 | 
						|
                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;
 | 
						|
        }
 | 
						|
    }
 | 
						|
} |