_cache.Insert(cacheKey, userList, null,
Cache.NoAbsoluteExpiration,
new TimeSpan(0, 15, 0),
CacheItemPriority.High, null);
上記のコードは3分後にキャッシュの有効期限が切れていないようです。userListオブジェクトは更新されたデータベースからデータをプルしますが、キャッシュは15分後に有効期限が切れません。
なにが問題ですか?
を使用して、キャッシュが期限切れにならないように明示的に設定していCache.NoAbsoluteExpiration
ます。Cache.NoSlidingExpiration
代わりに使用したい:
このフィールドを使用すると、定数値がゼロ
slidingExpiration
のフィールドにパラメータが 設定されます。キャッシュされた項目は、またはメソッドの呼び出しに関連付けられTimeSpan.Zero
たパラメーターに従って期限切れになります。absoluteExpiration
Insert
Add
スライド有効期限パラメーターに 15 分を渡しています: http://msdn.microsoft.com/en-us/library/05kd8d77.aspx
挿入されたオブジェクトが最後にアクセスされてから、そのオブジェクトの有効期限が切れるまでの間隔。この値が 20 分に相当する場合、オブジェクトは最後にアクセスされてから 20 分後に期限切れになり、キャッシュから削除されます。スライド有効期限を使用している場合、absoluteExpiration パラメーターは NoAbsoluteExpiration である必要があります。
キャッシュされたオブジェクトが 15 分ごとよりも頻繁にアクセスされる場合、有効期限が切れることはありません。
_cache.Insert(
cacheKey,
userList,
null,
new TimeSpan(0, 15, 0),
Cache.NoSlidingExpiration,
CacheItemPriority.High,
null);
アイテムは 15 分で期限切れになります