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
説明:
- 行 1: 絶対有効期限のあるキャッシュに挿入します。絶対期限切れに注意してください
- 2 行目: 数分後、フェッチ - A OK
- 3 行目: 10 分ほど後にフェッチ - 見つかりません
- 行 4: アイテムがキャッシュに見つからないと報告されました
つまり、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は高く評価されます:)