2

私は現在 Application_Start で大量の作業を行っています。2 ギガのデータをメモリにキャッシュして、アプリケーションを効率的に動作させるのに 1 時間か 2 時間かかります。

この方法を使用すると、これらの処理対象が完了するまで、Azure Web ロール インスタンスは使用できません。HTTPRuntime キャッシュに挿入しているため、WebRole.cs OnStart() または Run() メソッドを使用できません (このキャッシュにアクセスできません)。

このキャッシュ期間中に Web サイトを利用可能にしながら、このデータをキャッシュにロードする別の方法を考えてもらえますか? ウェブサイトは、データの読み込み中は正常に動作しますが、それほど速くはありません.

どうもありがとう、-ケビン

4

2 に答える 2

3

キャッシングは通常、コンテンツが実際に必要になる前に読み込まれる事前キャッシングとは対照的に、オンデマンド (または遅延キャッシング) であるため、アプローチ キャッシングと呼ぶのは少し無理が​​あります。

  1. 事前キャッシュから遅延キャッシュに切り替えることができます
  2. 事前キャッシュを行う必要がある場合は、ある種の永続ストレージにキャッシュを保持できますが、サーバーの近くにあります。Azure の場合、テーブルまたは BLOB ストレージと SQL Azure のいずれかを選択できます。永続キャッシュを使用すると、ロール インスタンスが更新または再起動されるたびにキャッシュを読み込む必要がなくなります。
  3. 少し待つことができれば、AppFabric キャッシュは多くの柔軟性とスケーラビリティを提供するため、ロール インスタンスごとに個別のキャッシュを維持する必要はありません。
于 2011-03-25T05:19:53.830 に答える
1

別のスレッドを使用してキャッシュにデータを追加できます。つまり、別のスレッドを作成し、そのスレッドを使用してデータのキャッシュを開始します。

その間、アプリケーションは完全に機能するはずです。

于 2011-03-25T04:17:00.510 に答える