私のキャッシュを私が望むように動作させるにはいくつか問題があります。ASP.NET永続キャッシュ(「レイジーローディング」スタイル)
問題: 要求されたデータを取得するプロセスは非常に時間がかかります。標準のASP.NETキャッシュを使用している場合、一部のユーザーはデータの取得に「ヒット」します。これは受け入れられません。
溶液: データが100%電流であることは非常に重要ではありません。キャッシュされたデータを別のスレッドで更新している間に古い無効化されたデータを提供して、新しいデータを将来のリクエストで利用できるようにしたいと思います。そのユーザーがアプリケーションを再起動した後に最初のユーザーにサービスを提供できるようにするためには、データを何らかの方法で永続化する必要があると思います。
私は上記のやや優れた解決策を作りましたが、「ベストプラクティス」の方法があるのか、すでにこの動作をサポートしているキャッシングフレームワークがあるのでしょうか?
私はこれを考えなかった。 しかし、このソリューションを使用すると、サイトを訪問した最初のユーザーは、キャッシュを更新する際に「ヒット」します。また、データをフェッチするためにインラインデリゲートを使用しているため、RemovedCallback内でデリゲートを再実行する方法がわかりません。 – hakksor
申し訳ありませんが、その部分に対処するのを忘れました。アプリケーションの開始時にGlobal.Asaxで、必要なデータに "偽の"要求を出すスレッドを生成します。この方法で既に働いているか、それはすでに最初の要求によって終了しています。 – BigBlondeViking
haha fist request ...(私は恐ろしいタイパーです) – BigBlondeViking