var cacheExpirationOptions = new MemoryCacheEntryOptions
{
AbsoluteExpiration = DateTime.Now.AddMinutes(5),
Priority = CacheItemPriority.Normal,
};
_memoryCache.Set(fakeTransactionId, transaction.Id,
cacheExpirationOptions.RegisterPostEvictionCallback((key, value, reason, state) = > {
TransactionStatusUpdate(transaction.Id, TransactionStatusType.UrlExpired);
}));
我想在默认进程过期时更新该进程,该怎么办?
var expirationTime = DateTime.Now.AddMinutes(30);
var expirationToken = new CancellationChangeToken(
new CancellationTokenSource(TimeSpan.FromMinutes(31)).Token);
var cacheEntryOptions = new MemoryCacheEntryOptions()
.SetPriority(CacheItemPriority.NeverRemove)
.SetAbsoluteExpiration(expirationTime)
.AddExpirationToken(expirationToken)
.RegisterPostEvictionCallback(callback: EvictionCallback, state: this);
_memoryCache.Set(fakeTransactionId, transaction.Id, cacheEntryOptions);
我发现,当expirationTime完成EvictionCallback触发时。