ApiControllerBase增加缓冲方法支持
This commit is contained in:
parent
459dcf8548
commit
c8db46053f
|
@ -259,7 +259,6 @@ namespace Falcon.SugarApi.ApiDefinistions
|
||||||
}
|
}
|
||||||
return this.Cache.GetString(key);
|
return this.Cache.GetString(key);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 设置缓存
|
/// 设置缓存
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -270,7 +269,7 @@ namespace Falcon.SugarApi.ApiDefinistions
|
||||||
if(this.Cache == null) {
|
if(this.Cache == null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if(key.IsNullOrEmpty() || val.IsNotNullOrEmpty()) {
|
if(key.IsNullOrEmpty() || val.IsNullOrEmpty()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if(span == null) {
|
if(span == null) {
|
||||||
|
@ -278,7 +277,6 @@ namespace Falcon.SugarApi.ApiDefinistions
|
||||||
}
|
}
|
||||||
this.Cache.SetString(key,val,new DistributedCacheEntryOptions { AbsoluteExpirationRelativeToNow = span });
|
this.Cache.SetString(key,val,new DistributedCacheEntryOptions { AbsoluteExpirationRelativeToNow = span });
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 获取缓存的对象
|
/// 获取缓存的对象
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -310,7 +308,49 @@ namespace Falcon.SugarApi.ApiDefinistions
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
var str = JsonSerializer.Serialize(val);
|
var str = JsonSerializer.Serialize(val);
|
||||||
this.Cache.SetString(key,str,new DistributedCacheEntryOptions { AbsoluteExpirationRelativeToNow = span });
|
this.SetCache(key,str,span);
|
||||||
|
//this.Cache.SetString(key,str,new DistributedCacheEntryOptions { AbsoluteExpirationRelativeToNow = span });
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// 尝试获取key指定的缓冲数据,如果不存在通过cacheDataBuilder方法获取缓冲数据,获取缓冲数据后存入分布式缓存,并返回数据
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="key">缓存的键</param>
|
||||||
|
/// <param name="cacheDataBuilder"></param>
|
||||||
|
/// <param name="span">存储过期时间</param>
|
||||||
|
/// <returns>缓冲数据</returns>
|
||||||
|
protected string? GetCache(string key,Func<string>? cacheDataBuilder = null,TimeSpan? span = null) {
|
||||||
|
string? str = this.GetCache(key);
|
||||||
|
if(str.IsNotNullOrEmpty()) {
|
||||||
|
return str;
|
||||||
|
}
|
||||||
|
if(cacheDataBuilder != null) {
|
||||||
|
str = cacheDataBuilder?.Invoke();
|
||||||
|
}
|
||||||
|
if(str.IsNotNullOrEmpty()) {
|
||||||
|
this.SetCache(key,str,span);
|
||||||
|
}
|
||||||
|
return str;
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// 尝试获取key指定的缓冲数据,如果不存在通过cacheDataBuilder方法获取缓冲数据,获取缓冲数据后存入分布式缓存,并返回数据
|
||||||
|
/// </summary>
|
||||||
|
/// <typeparam name="T"></typeparam>
|
||||||
|
/// <param name="key"></param>
|
||||||
|
/// <param name="cacheDataBuilder"></param>
|
||||||
|
/// <param name="span"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
protected T? GetCache<T>(string key,Func<T>? cacheDataBuilder = null,TimeSpan? span = null) {
|
||||||
|
T? result = this.GetCache<T>(key);
|
||||||
|
if(result != null) {
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
if(cacheDataBuilder != null) {
|
||||||
|
result = cacheDataBuilder.Invoke();
|
||||||
|
}
|
||||||
|
if(result != null) {
|
||||||
|
this.SetCache(key,result,span);
|
||||||
|
}
|
||||||
|
return result;
|
||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user