7

そのため、フラッシュオブジェクトの開始点と終了点を設定する真夜中に実行されるプロセスがあります。これは 1 日に 1 回実行するだけでよいので、明らかに結果セットをキャッシュしています。

ただし、私が直面している問題は、ミッドナイトの後もデータがまだキャッシュされている場合、キャッシュの有効期限が切れるまで、最も正しいデータを取得できないことです。

基本的に、午前 12 時に正しいデータを取得できるように、キャッシュの有効期限が午後 11 時 59 分 59 秒に切れるようにする必要があります。

データをプルしているテーブルのSQLキャッシュ依存関係が理想的だと思いますが、これまでに設定したことはありません。

正午に特定のアイテムを削除するようにキャッシュに指示する方法はありますか?

みんなありがとう!

--絶対有効期限---

私はそれを得たと思います:

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);
4

3 に答える 3

5

DateTime である Cache オブジェクトに absoluteExpiration 時間を設定できます。

また、absoluteExpiration を SqlCacheDependency と組み合わせることもできます。

キャッシュの有効期限が切れたときに新しいデータを取得しないという問題については、CacheItemRemovedCallback を接続して有効期限が切れたときに通知を受け取り、その時点でキャッシュを更新することができます。

于 2009-12-08T16:01:43.763 に答える
3

絶対有効期限に問題がある理由がわかりませんか? アイテムの有効期限が切れる正確な日時をキャッシュから指定できます。したがって、次のコード行は、「myObject」をキー「MyKey」の下のキャッシュに挿入し、翌日の午前 0 時に有効期限が切れます (いつキャッシュに入るかは関係ありません)。

Cache.Insert("MyKey", myObject, null, DateTime.Today.AddDays(1), TimeSpan.Zero);
于 2009-12-08T16:10:28.960 に答える
1

ここを見ると、「時間ベースの依存関係」の下に、特定の時間に期限切れになるようにアイテムを設定する方法が示されています。それはあなたが探しているものですか?

于 2009-12-08T15:54:09.597 に答える