4

WebアプリケーションがWebサービスを呼び出す状況があります。このサービスは、データベースのストアドプロシージャを呼び出して、顧客に応じてデータを返します。SPから返される行は80万行あり、SPにJOINが含まれるため、約8〜10秒かかります。

Webサービスの終了時に、80万行をキャッシュに入れ、Webサービスがキャッシュからデータを返すことを決定しました。バックグラウンドスレッドが一緒に動作し、15〜20秒後にデータを更新します。

ASP.NET2.0でのバックグラウンド処理の本格的なメカニズムを知りたいと思いました。

何卒ご理解とご協力を賜りますようお願い申し上げます。

4

4 に答える 4

0

私はそれを実装しましたが、私の別の質問はその実装を示しています。 ASP.NET バックグラウンド スレッドのパフォーマンス ガイダンス

于 2012-07-16T07:25:02.540 に答える
0

HttpModuleを使用して、バックグラウンド スレッドをスピンオフし、データをキャッシュできます。これは、あなたが提案していることだけを行う方法を示すブログ投稿です。

于 2012-06-22T15:27:53.653 に答える
0

これは、Golbal.asx (Application_Start イベント) に A スレッドを作成することで簡単に実行でき、そのスレッドが作業を行います。また、達成したいタスクのためのいくつかの HTTPModule ベースの実装といくつかの Cache ベースの実装があります。

ただし、IDLE タイムアウト (またはその他の理由) によりアプリケーション プールがリサイクルされると、すべての機能が停止するため、上記のいずれもお勧めしません。これらすべての問題の詳細は次のとおりです。

http://haacked.com/archive/2011/10/16/the-dangers-of-implementing-recurring-background-tasks-in-asp-net.aspx

私がお勧めするのは:- 1- Windows サービスを作成する 2- シンプルなコンソール アプリケーションを作成し、Windows でスケジュールされたタスクに追加する 3- 特定の頻度で実行されるデータベースにジョブを作成する。

詳細については、以下をご覧ください:-

http://zeeshanumardotnet.blogspot.com/2010/01/how-to-send-periodictimely-emails.html

于 2012-06-26T09:57:56.503 に答える
0

ここでは、バックグラウンド処理は役に立ちません。新しいデータベース担当者を雇って、データのページングを実際に理解していることを確認してください。25 行のデータをクエリするのに 10 秒かかるなんてあり得ない。

于 2012-06-26T13:22:56.263 に答える