diff --git a/Src/Dlhis.ScheduledTask/Program.cs b/Src/Dlhis.ScheduledTask/Program.cs index 1958c236..d984f7aa 100644 --- a/Src/Dlhis.ScheduledTask/Program.cs +++ b/Src/Dlhis.ScheduledTask/Program.cs @@ -19,5 +19,13 @@ public class Startup : DefaultStartup { base.ConfigureServices(services); services.AddRedis(); + services.AddMemoryCache(); } + + // public override void Configure(IApplicationBuilder app, IWebHostEnvironment env) + // { + // base.Configure(app, env); + // var token = new JipTokenHandler().GetTokenAsync(app.ApplicationServices).GetAwaiter().GetResult(); + // Console.WriteLine("token: " + token); + // } } \ No newline at end of file diff --git a/Src/Dlhis.ScheduledTask/TaskAssignment/Services/Implements/AssignmentService.cs b/Src/Dlhis.ScheduledTask/TaskAssignment/Services/Implements/AssignmentService.cs index 8dfe190d..bac70b72 100644 --- a/Src/Dlhis.ScheduledTask/TaskAssignment/Services/Implements/AssignmentService.cs +++ b/Src/Dlhis.ScheduledTask/TaskAssignment/Services/Implements/AssignmentService.cs @@ -13,6 +13,7 @@ using Kurisu.AspNetCore.Utils; using Dlhis.ScheduledTask.TaskAssignment.Dto; using Kurisu.AspNetCore.CustomClass; using Kurisu.AspNetCore.DataAccess.SqlSugar.Services; +using Microsoft.Extensions.Caching.Memory; namespace Dlhis.ScheduledTask.TaskAssignment.Services.Implements; @@ -20,16 +21,19 @@ public class AssignmentService : IAssignmentService { private readonly IDbContext _dbContext; private readonly IDataProtectionProvider _dataProtectionProvider; + private readonly IMemoryCache _memoryCache; private readonly ILogger _logger; private readonly FaceUrlOptions _faceUrlOptions; public AssignmentService(IDbContext dbContext, IDataProtectionProvider dataProtectionProvider, IOptions options, + IMemoryCache memoryCache, ILogger logger) { _dbContext = dbContext; _dataProtectionProvider = dataProtectionProvider; + _memoryCache = memoryCache; _logger = logger; _faceUrlOptions = options.Value; } @@ -241,11 +245,7 @@ public class AssignmentService : IAssignmentService private async Task> GetDataAsync(DeviceTaskGetRequest request) { - var startId = await GetStartIdAsync(request.DeviceUniqueNo); - if (!startId.HasValue) - { - return new List(); - } + var startId = await GetStartIdAsync(); var data = await CommonHelper.RetryAsync(async () => { @@ -329,22 +329,25 @@ public class AssignmentService : IAssignmentService } - private async Task GetStartIdAsync(string deviceUniqueNo) + private async Task GetStartIdAsync() { - return 74782371; - + const string cacheKey = "DeviceTaskStartId"; + if (_memoryCache.TryGetValue(cacheKey, out var cachedStartId)) + { + return cachedStartId; + } + var limitTime = DateTime.Now.AddDays(-3); var limitData = await _dbContext.Queryable() .Where(x => x.ModifiedTime >= limitTime) - .Where(x => x.DeviceUniqueNo == deviceUniqueNo) .OrderBy(x => x.ModifiedTime) - .Select(x => new { x.Id }) + .Select(x => x.Id) .FirstAsync(); - var startId = limitData?.Id; + _memoryCache.Set(cacheKey, limitData, TimeSpan.FromMinutes(30)); - return startId; + return limitData; }