缓存过期时如何更新事务状态?
How can I update the transactions status when cache expire?
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 触发。
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 触发。