ASP.NET 2.0で特定の時間にキャッシュをクリア
-
18-09-2019 - |
質問
だから私は、フラッシュオブジェクトの始点と終点を設定し、真夜中に実行されるプロセスを持っています。これは、一日一回実行する必要があるので、私は明らかに、結果セットをキャッシュしています。
データがまだmidnite後にキャッシュされている場合、キャッシュの有効期限が切れるまで、しかし、私はに実行している問題は、それが、最も正しいデータで引っ張っていないされます。
午前12時00分で、それは正しいデータを取得するように、私は基本的には、午前11時59分59秒PMで期限が切れるようにキャッシュを必要とします。
私は、しかし、私は前にそれを設定したことがない、私は理想的であるからデータを引っ張ってるテーブルにSQLキャッシュ依存関係を推測してます。
正確midniteで特定の項目を削除するためにキャッシュを伝える方法はありますか?
みんなありがとう!
- 絶対有効期限---
私は、私はそれを得たと思います
DateTime expireWeights = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 23, 59, 59, 999);
Cache.Insert("CacheItemName", itemToCache, null, expireWeights, System.Web.Caching.Cache.NoSlidingExpiration);
解決
あなたはDateTimeのあるCacheオブジェクト、上absoluteExpiration時間を設定することができます。
また、SqlCacheDependencyでabsoluteExpirationを組み合わせることができます。
キャッシュの有効期限が切れたときにそれの問題については、新たなデータを引っ張っていない:あなたはそれの有効期限が切れたときの通知を受信し、その時にキャッシュを更新するCacheItemRemovedCallbackを配線することができます。
。他のヒント
あなたは絶対有効期限の問題を持っている理由
私は理解していませんか?あなたは、アイテムがキャッシュから期限切れになるまで正確な日時を示すことができます。したがって、次のコード行は、「mykey」キーの下のキャッシュに「myObjectという」を挿入し、(関係なく、それがキャッシュをenteresときの)次の日の午前零時に期限切れになります。
Cache.Insert("MyKey", myObject, null, DateTime.Today.AddDays(1), TimeSpan.Zero);
所属していません StackOverflow