【优化】定时任务处理微信交互accesstoken时,如果缓存不存在,也从数据库再去拿一份最新的进行缓存。

This commit is contained in:
jianweie code
2024-06-13 12:11:35 +08:00
parent ca2502d319
commit 3119d91324

View File

@@ -10,6 +10,7 @@
using System; using System;
using CoreCms.Net.Caching.AccressToken;
using CoreCms.Net.Caching.AutoMate.RedisCache; using CoreCms.Net.Caching.AutoMate.RedisCache;
using CoreCms.Net.Configuration; using CoreCms.Net.Configuration;
using CoreCms.Net.IServices; using CoreCms.Net.IServices;
@@ -113,7 +114,7 @@ namespace CoreCms.Net.Task
await _redisOperationRepository.SetAsync(GlobalEnumVars.JsApiTicketEnum.WeiXinJsApiTicket.ToString(), responseJsTicket, TimeSpan.FromMinutes(120)); await _redisOperationRepository.SetAsync(GlobalEnumVars.JsApiTicketEnum.WeiXinJsApiTicket.ToString(), responseJsTicket, TimeSpan.FromMinutes(120));
} }
//插入日志 //插入日志
var model = new SysTaskLog var model = new SysTaskLog
{ {
@@ -127,6 +128,17 @@ namespace CoreCms.Net.Task
} }
else else
{ {
var accessToken = WeChatCacheAccessTokenHelper.GetWeChatAccessToken();
if (accessToken == null)
{
// 将时间戳转换为DateTime
var expireTime = DateTimeOffset.FromUnixTimeSeconds(entity.expireTimestamp).DateTime;
// 计算两个时间的时间差
var timeDifference = expireTime - DateTime.Now;
await _redisOperationRepository.SetAsync(GlobalEnumVars.AccessTokenEnum.WeiXinAccessToken.ToString(), entity, TimeSpan.FromMinutes(timeDifference.TotalMinutes));
}
//插入日志 //插入日志
var model = new SysTaskLog var model = new SysTaskLog
{ {
@@ -174,9 +186,7 @@ namespace CoreCms.Net.Task
await _weChatAccessTokenServices.UpdateAsync(entity); await _weChatAccessTokenServices.UpdateAsync(entity);
} }
await _redisOperationRepository.SetAsync( await _redisOperationRepository.SetAsync(GlobalEnumVars.AccessTokenEnum.WxOpenAccessToken.ToString(), entity, TimeSpan.FromMinutes(120));
GlobalEnumVars.AccessTokenEnum.WxOpenAccessToken.ToString(), entity,
TimeSpan.FromMinutes(120));
//插入日志 //插入日志
var model = new SysTaskLog var model = new SysTaskLog
@@ -203,6 +213,17 @@ namespace CoreCms.Net.Task
} }
else else
{ {
var accessToken = WeChatCacheAccessTokenHelper.GetWxOpenAccessToken();
if (accessToken == null)
{
// 将时间戳转换为DateTime
var expireTime = DateTimeOffset.FromUnixTimeSeconds(entity.expireTimestamp).DateTime;
// 计算两个时间的时间差
var timeDifference = expireTime - DateTime.Now;
await _redisOperationRepository.SetAsync(GlobalEnumVars.AccessTokenEnum.WxOpenAccessToken.ToString(), entity, TimeSpan.FromMinutes(timeDifference.TotalMinutes));
}
//插入日志 //插入日志
var model = new SysTaskLog var model = new SysTaskLog
{ {