我们在同位模式下运行Azure缓存(预览),我们注意到有时无法在缓存中找到项目或过早过期。
要更好地了解我的问题,请查看我们日志中的以下输出
2012-07-26 03:14:15,093 [13] DEBUG XXX.CacheBase - Update: XXX-CacheKey-XXX | Abs Exp: 07/26/2012 04:15:15 +00:00 | Sli Exp: 00:00:00
2012-07-26 03:14:17,452 [22] DEBUG XXX.CacheBase - PessimisticFetch - XXX-CacheKey-XXX
2012-07-26 03:24:32,229 [23] DEBUG XXX.CacheBase - PessimisticFetch - XXX-CacheKey-XXX
2012-07-26 03:24:32,245 [23] DEBUG XXX.SomeClass - Item not found in cache: XXX-CacheKey-XXX
Explination:
简而言之,我们使用GetAndLock / PutAndLock来存储这些特定的项目。这些物品有一个绝对的到期时间(1小时),但是5到10分钟之后的任何物品都不再在缓存中了。
我的CacheItemPolicy更令人不安我设置了删除通知,但这绝不会被触发
//---
cacheItemPolicy.RemovedCallback = ItemRemoved;
//---
static void ItemRemoved(CacheEntryRemovedArguments args)
{
_log.DebugFormat("Item evicted from cache: {0}. Reason: {1}", args.CacheItem.Key, args.RemovedReason);
}
我还附上了缓存设置的屏幕截图 见图 - > http://i.stack.imgur.com/4ORQQ.jpg
我已经没想到它会是什么......任何线索解释,WTF会很感激:)