2010-12-28 6 views
0

絞り込みを達成するために:ユーザーのasp.net Webアプリケーションを使用してメモリを操作する方法は?

  • 複数のグループには、ブラウザを使用して 対話します。

  • 各グループでは、ユーザーは一部のデータ(オブジェクト)と対話します。

  • データ(オブジェクト)はデータベースからロードされます。対話中に、ユーザーは同じデータ(オブジェクト)の迅速かつ同期化されたビューを必要とするため、それらをメモリに保存する必要があります。
  • データ(オブジェクト)はインタラクション中に変更されますが、このインタラクションの最終結果のみをDBに保存する必要があります。

私の現在のソリューション

負荷データ(オブジェクト)を操作のGlobal.asaxの中へ。しかし、この解決策のために、私はいくつかの質問があります。 ?私は、Webアプリケーションがインスタンスを1つだけ持っていることを確認することができますどのように(?IISで設定 - >アプリケーションプールを)

  • Webアプリケーションは、結果として、それ自体で、アプリケーション内のすべてのデータを再起動してしまうので、状態は失われます。どのように私はそれを管理するよりもむしろアプリケーションの再起動を避けることができますか?
  • iisアプリケーションプールの設定では、私はリサイクル時間を設定することができます、この時間中にアプリケーションの再起動は起こらないことが保証されていますか?
  • またはそこにあるイベントが(アプリケーションの再起動前に)何かをトリガする可能性がありますので、現在のアプリケーションステータスを保存して再度読み込むことができますか?

  • または達成するために必要なものを達成するための単純な方法がありますか?私はあなたがちょうどそれは聞かせて、アプリケーションをスケーリングすると、そのように少し簡単かもしれないという事実を楽しむなど、IISのアプリケーションプールをだまししようとしないべきだと思い

おかげ

+0

明らかな質問の1つは、なぜこれらのオブジェクトをメモリに格納する必要があるかということです。本当に必要ですか?オンデマンドでオブジェクトをメモリにロードするのに要する時間は、要求がインターネットを横断するのに要する時間に比べて些細なものであるため、単なるスピードにはなりそうにありません。 –

答えて

0

代わりに、ある種類の共有メモリを別のサーバー(プロセス)に設定することを検討する必要があります。 Memcachedのようなものを使用してこれらのデータオブジェクトを格納する場合、基本的にはWebアプリケーションの変数に格納されている場合と同じになります。ただし、Webアプリケーションの存続期間よりも長くなります。

あなたはおそらく、あなたは一つのオブジェクト上の入力/出力の多くを持っているか、実際にリアルタイム通信やオブジェクトのイベントを必要としない限り、それが十分で同期していないことを恐れる必要はありません...

0

ありApplication_Endイベント。しかし、必ずしもそうではないと聞きました。価値があると思います。

その後、セットアップアプリケーションプールがあなたの仕様に応じてリサイクルすることができます。

http://remy.supertext.ch/2010/08/iis7-worker-process-reached-its-allowed-processing-time-limit/

の夜でアプリには、使用がない場合、それは簡単なソリューションです。

Memcacheのようなものは、明らかにより専門的です。私は、MSにはIIS7のようなものがあると思います。

関連する問題