From 2b2530dfbb2d876520882473e7ab827a079eca0c Mon Sep 17 00:00:00 2001 From: sulu Date: Wed, 20 Dec 2023 21:21:27 +0800 Subject: [PATCH] =?UTF-8?q?token=E8=BF=87=E6=9C=9F=E8=87=AA=E5=8A=A8?= =?UTF-8?q?=E5=88=A0=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AutoDispathingWork/AutoDispathingWork.csproj | 3 ++- AutoDispathingWork/Program.cs | 6 +++++- AutoDispathingWork/Services/SpiderServices.cs | 10 ++++++++-- 3 files changed, 15 insertions(+), 4 deletions(-) diff --git a/AutoDispathingWork/AutoDispathingWork.csproj b/AutoDispathingWork/AutoDispathingWork.csproj index 6d9dd7a..34f94d2 100644 --- a/AutoDispathingWork/AutoDispathingWork.csproj +++ b/AutoDispathingWork/AutoDispathingWork.csproj @@ -10,8 +10,9 @@ + - + diff --git a/AutoDispathingWork/Program.cs b/AutoDispathingWork/Program.cs index d71d24a..725a879 100644 --- a/AutoDispathingWork/Program.cs +++ b/AutoDispathingWork/Program.cs @@ -1,5 +1,6 @@ using AutoDispathingWork.Utils; using LiteDB; +using Microsoft.Extensions.FileProviders; using Microsoft.OpenApi.Models; using WorkerService1; using WorkerService1.Dto.Configuration; @@ -43,11 +44,14 @@ builder.Services.AddHostedService(); var app = builder.Build(); + StaticServiceProvider.SetServiceProvider(app.Services); app.UseCors("AllowAllOrigin"); - +#if DEBUG app.UseSwagger(); app.UseSwaggerUI(); +#endif + app.UseDefaultFiles(); app.UseStaticFiles(); app.MapControllers(); diff --git a/AutoDispathingWork/Services/SpiderServices.cs b/AutoDispathingWork/Services/SpiderServices.cs index c8f6fd8..1a2e39d 100644 --- a/AutoDispathingWork/Services/SpiderServices.cs +++ b/AutoDispathingWork/Services/SpiderServices.cs @@ -83,13 +83,19 @@ public class SpiderServices public async Task GetToken() { - return await _memoryCache.GetOrCreateAsync(nameof(GetToken), async entry => + var token = await _memoryCache.GetOrCreateAsync(nameof(GetToken), async entry => { var loginRes = await Login(); - if (!loginRes.IsSuccess) return null; + if (!loginRes.IsSuccess) + { + entry.AbsoluteExpiration = DateTimeOffset.Now; + return null; + } entry.AbsoluteExpirationRelativeToNow = TimeSpan.FromSeconds(loginRes.Result?.ExpireTime ?? 0); return loginRes.Result?.Token; }); + if(string.IsNullOrWhiteSpace(token)) _memoryCache.Remove(nameof(GetToken)); + return token; }