つまり、キャッシュされた値の有効期限が切れたときに呼び出される一種のイベントまたはコールバックです。おそらく、このコールバックには、たとえば、キャッシュとは別の場所に格納するために、現在のキャッシュ値を指定する必要があります。
そのような方法を見つけるために、通知オプションを確認しましたが、追加や削除などのキャッシュを使用した明示的なアクションに適用できるようですが、有効期限は暗黙的に発生するものの一種です。これらのコールバックはいずれも、キャッシュ値の有効期限が切れてから何分も呼び出されないことがわかりましたがnull
、明示的に呼び出すと、通常はポーリング間隔内で呼び出されますDataCache.Remove
(間違っています。以下の更新を参照してください)。
ASP.Netにはそのようなコールバックがあるため、この動作は奇妙だと思います。SOでそれを利用する方法の説明を見つけることさえできます。
また、DataCacheイベントを試しました。文字通りMSDNで書かれています
このAPIは.NETFrameworkインフラストラクチャをサポートしており、コードから直接使用することを目的としたものではありません。
それでも、これらのイベントのハンドラーを作成して、その引数を次のようにテストできるかどうかを確認CacheOperationStartedEventArgs.OperationType == CacheOperationType.ClearCache
しましたが、無駄に見えました。
現時点では、必要なコールバックがないというこの問題の回避策について考え始めました。したがって、それらを実装する方法の提案も歓迎します。
アップデート。より注意深く患者をテストした後、有効期限後にとの通知が送信されることがわかりましたDataCacheOperations.ReplaceItem
。残念ながら、有効期限が切れる前にキャッシュされた値を取得する方法が見つかりませんでした。