ですから、興味深い問題があります。AppFabricを使用して、大量のデータをキャッシュします。キャッシュに保存するいくつかの側面と、呼び出されたときに特定のキーのキャッシュをクリアするメソッドがあります。ただし、「ファントム」キャッシュがあるという奇妙な問題が発生しています。
これが作成シナリオです。
2つのブラウザ(FirefoxとChrome)、1つは管理者、2つ目は通常のユーザーです。
- キャッシュの有効期限が切れるまで(5分)待ってから、キャッシュをチェックしてクリアされていることを確認します。です。
- 次に、通常のユーザーを更新してキャッシュに挿入し、管理者に確認します。です。
- adminでユーザーを更新します(更新中にキャッシュをクリアします)、クリアされていることを確認します。です。
- 通常のユーザーブラウザを更新して、変更されたかどうかを確認します。それはしません
この最後が問題です。キャッシュをクリアし、クリアを確認しましたが、他のブラウザはキャッシュをクリアしなかったように動作します。これは常に起こるわけではありませんが、私がそれを解決しようとして髪を引っ張っているほど頻繁に起こります。
誰かがこれが何であるかについて何か考えを持っていますか?
一般的なキャッシュパターンの更新。申し訳ありませんが、詳細を共有することはできません。
- メソッド呼び出しをインターセプトしてキャッシングを実行するPostSharp属性。
- httpContextキャッシュを確認します
- Azureキャッシュを確認する
- ある場合はhttpContextキャッシュにスローします
- 実行メソッド
- httpContextキャッシュに送信
- httpcontextキャッシュを使用してAzureキャッシュにプッシュするリクエストの終了のキュー
- 要求の終了時にキューに入れられたキャッシュ値をAzureに転送するグローバルアクションフィルター。
- 子アクションが戻った場合
- キューをループして、新しいアイテムをAzureキャッシュにスローします
- キュー内のアイテムのhttpcontextキャッシュをクリアします
これにより、キャッシュされたアイテムをリクエストごとに1回だけ取得し、リクエストの処理中に収集された後、リクエストの最後に紺碧のプットを発生させることができます。