From 58c17ceae04f4edad87cf0d5cad4da65ca8c8eab Mon Sep 17 00:00:00 2001 From: liangshiwei Date: Fri, 26 Jun 2020 19:29:24 +0800 Subject: [PATCH] Rename GetAndRefreshMany to PipelineRefreshManyAndOutData --- .../StackExchangeRedis/AbpRedisCache.cs | 56 +++++++++---------- 1 file changed, 27 insertions(+), 29 deletions(-) diff --git a/framework/src/Volo.Abp.Caching.StackExchangeRedis/Volo/Abp/Caching/StackExchangeRedis/AbpRedisCache.cs b/framework/src/Volo.Abp.Caching.StackExchangeRedis/Volo/Abp/Caching/StackExchangeRedis/AbpRedisCache.cs index e02619bc6e..6d59b6fc64 100644 --- a/framework/src/Volo.Abp.Caching.StackExchangeRedis/Volo/Abp/Caching/StackExchangeRedis/AbpRedisCache.cs +++ b/framework/src/Volo.Abp.Caching.StackExchangeRedis/Volo/Abp/Caching/StackExchangeRedis/AbpRedisCache.cs @@ -77,7 +77,7 @@ namespace Volo.Abp.Caching.StackExchangeRedis SlidingExpirationKey); } - Task.WaitAll(GetAndRefreshMany(keyArray, results, out var bytes)); + Task.WaitAll(PipelineRefreshManyAndOutData(keyArray, results, out var bytes)); return bytes; } @@ -105,12 +105,15 @@ namespace Volo.Abp.Caching.StackExchangeRedis SlidingExpirationKey); } - await Task.WhenAll(GetAndRefreshMany(keyArray, results, out var bytes)); + await Task.WhenAll(PipelineRefreshManyAndOutData(keyArray, results, out var bytes)); return bytes; } - private Task[] GetAndRefreshMany(string[] keys, RedisValue[][] results, out byte[][] bytes) + private Task[] PipelineRefreshManyAndOutData( + string[] keys, + RedisValue[][] results, + out byte[][] bytes) { bytes = new byte[keys.Length][]; var tasks = new Task[keys.Length]; @@ -119,7 +122,27 @@ namespace Volo.Abp.Caching.StackExchangeRedis if (results[i].Length >= 2) { MapMetadata(results[i], out DateTimeOffset? absExpr, out TimeSpan? sldExpr); - tasks[i] = PipelineRefresh(keys[i], absExpr, sldExpr); + + if (sldExpr.HasValue) + { + TimeSpan? expr; + + if (absExpr.HasValue) + { + var relExpr = absExpr.Value - DateTimeOffset.Now; + expr = relExpr <= sldExpr.Value ? relExpr : sldExpr; + } + else + { + expr = sldExpr; + } + + tasks[i] = Cache.KeyExpireAsync(keys[i], expr); + } + else + { + tasks[i] = Task.CompletedTask; + } } if (results[i].Length >= 3 && results[i][2].HasValue) @@ -135,31 +158,6 @@ namespace Volo.Abp.Caching.StackExchangeRedis return tasks; } - private Task PipelineRefresh( - string key, - DateTimeOffset? absExpr, - TimeSpan? sldExpr) - { - if (sldExpr.HasValue) - { - TimeSpan? expr; - - if (absExpr.HasValue) - { - var relExpr = absExpr.Value - DateTimeOffset.Now; - expr = relExpr <= sldExpr.Value ? relExpr : sldExpr; - } - else - { - expr = sldExpr; - } - - return Cache.KeyExpireAsync(key, expr); - } - - return Task.CompletedTask; - } - private Task[] PipelineSetMany( IEnumerable> items, DistributedCacheEntryOptions options)