2

優れた SpreadSheetGear ツールを使用して、オンザフライでレポートを生成しています。レポートがシンプルで 1 秒以内に完了したので、最初は素晴らしかったです。現在、私はより複雑なレポートに取り組んでおり、約 30 秒から最大 1 分かかります。これは問題ではありません。アクティビティ イメージを表示して、ユーザーを待たせるだけです。

私が見つけた問題は、2 人のユーザーがサイトに来たときです。

  1. ユーザー 1 がサイトに来る
  2. ユーザー 1 は、30 秒かかるレポートを実行します。
  3. ユーザー 2 がサイトに来る
  4. ユーザー 2 は、ユーザー 1 のレポートが完了するまで待機し、その後ページが読み込まれます。

ユーザー 1 に対して実行中のレポートは、完了するまでサイトをハングアップさせます。何が起こっていますか?どうすれば修正できますか?

4

2 に答える 2

2

コードがどのように見えるかについての詳細は共有しませんが、非同期ページの作成を検討する必要があるようです。要するに、トリックは、ページ要求を処理するために使用されるスレッドプールからスレッドから重い作業を移動することです。重い作業を他のスレッドに移動することで、他の着信要求を処理するために、スレッドプールスレッドをプールにすばやく戻すことができます。

次に、レポートを作成するマシンがどれだけの作業を行うことができるかが問題になります。

于 2010-09-28T18:09:00.220 に答える
0

レポート データはどのくらいの頻度で変更されますか? たとえば、SQL Server を使用している場合、ストアド プロシージャを使用してレポート データをテーブルに作成し、そのストアド プロシージャを SQL Server エージェント ジョブとして実行できます。データを更新したいので、ジョブを頻繁に実行するように設定します。これにより、ページが大幅に高速化されます。

同じスレッドに両方のリクエストがあるようですね。

于 2010-09-28T18:21:00.850 に答える