Browse Source

Make `UserFlashSaleResultCache` have an absolute expiration

pull/197/head
Jadyn 4 years ago
parent
commit
9bb714e436
  1. 16
      plugins/FlashSales/src/EasyAbp.EShop.Plugins.FlashSales.Application/EasyAbp/EShop/Plugins/FlashSales/FlashSalePlans/FlashSalePlanAppService.cs
  2. 5
      plugins/FlashSales/src/EasyAbp.EShop.Plugins.FlashSales.Application/EasyAbp/EShop/Plugins/FlashSales/FlashSalePlans/FlashSalesOptions.cs

16
plugins/FlashSales/src/EasyAbp.EShop.Plugins.FlashSales.Application/EasyAbp/EShop/Plugins/FlashSales/FlashSalePlans/FlashSalePlanAppService.cs

@ -278,10 +278,10 @@ public class FlashSalePlanAppService :
);
});
await SetUserFlashSaleResultCacheAsync(plan.Id, result.Id);
var createFlashSaleOrderEto = await PrepareCreateFlashSaleOrderEtoAsync(plan, result.Id, input, userId, now, preOrderCache.HashToken);
await SetUserFlashSaleResultCacheAsync(plan.Id, result.Id);
await DistributedEventBus.PublishAsync(createFlashSaleOrderEto);
return new FlashSaleOrderResultDto() { IsSuccess = true, FlashSaleResultId = result.Id };
@ -348,7 +348,10 @@ public class FlashSalePlanAppService :
protected virtual async Task SetUserFlashSaleResultCacheAsync(Guid planId, Guid resultId)
{
var userFlashSaleResultCacheKey = await GetUserFlashSaleResultCacheKeyAsync(planId);
await DistributedCache.SetStringAsync(userFlashSaleResultCacheKey, resultId.ToString());
await DistributedCache.SetStringAsync(userFlashSaleResultCacheKey, resultId.ToString(), new DistributedCacheEntryOptions()
{
AbsoluteExpiration = DateTimeOffset.Now.Add(Options.UserFlashSaleResultCacheExpires)
});
}
#endregion
@ -423,9 +426,12 @@ public class FlashSalePlanAppService :
HashToken = hashToken
};
foreach (var item in input.ExtraProperties)
if (input.ExtraProperties != null)
{
eto.ExtraProperties.Add(item.Key, item.Value);
foreach (var item in input.ExtraProperties)
{
eto.ExtraProperties.Add(item.Key, item.Value);
}
}
return Task.FromResult(eto);

5
plugins/FlashSales/src/EasyAbp.EShop.Plugins.FlashSales.Application/EasyAbp/EShop/Plugins/FlashSales/FlashSalePlans/FlashSalesOptions.cs

@ -8,4 +8,9 @@ public class FlashSalesOptions
/// Default: 3 minutes
/// </summary>
public TimeSpan PreOrderExpires { get; set; } = TimeSpan.FromMinutes(3);
/// <summary>
/// Default: 5 minutes
/// </summary>
public TimeSpan UserFlashSaleResultCacheExpires { get; set; } = TimeSpan.FromMinutes(5);
}

Loading…
Cancel
Save