[C#] .Netキャッシュの有効期限


Answers

Question

私のプロジェクトでは、Webサービスを使用してDBからデータを取得し、Webサービスからキャッシュにデータを移入します。 私は絶対有効期限を使用しており、期間は4時間に設定されています。 したがって、4時間後にキャッシュが期限切れになるため、Webサービスが呼び出されてキャッシュ内のデータが再投入されます。

今起こっている問題は次のとおりです。

場合によっては、Webサービスとデータベース間の接続を確立する際に問題が発生し、Webサービスからデータが返されないことがあります。

この場合、キャッシュにはすべてのフィールドと4時間までのキャッシュ(再期限まで)にヌル値が設定されます。再投入されません。

私は2種類のソリューションを探しています:1)期限切れになる前にキャッシュを更新してから、Webサービスを呼び出すことができます。 Webサービスがデータを戻す場合は、キャッシュを上書きします。 2)キャッシュが期限切れになることはなく、データが戻ってきた場合にキャッシュを更新するスレッドが頻繁に生成されます。

しかし、私はどのように上記のソリューションを実装するか分からないのですか? 誰かが技術的な部分について私に洞察を与えることができますか? 助けてくれてありがとう!

キャッシュにデータを読み込む現在のコード:

ctx.Cache.Insert("cachename", cacheValue, null,
              DateTime.Now.AddHours(Int32.Parse(siteViewModel.ApplicationSettings["CacheDurationHours"])), System.Web.Caching.Cache.NoSlidingExpiration, 
             System.Web.Caching.CacheItemPriority.Default,
             null
             );