私の現在のサイトは、誰かが初めてアプリケーションにログインしたときに、特定の人々のためにメッセージを残すように設定されています。残されたメッセージの数は、1000から10000のいずれかであり、それぞれが照会であり、すべての照会はトランザクション・ステートメントである。背景ASP.NETでのスレッド化とパフォーマンスへの影響
はい、私はこれが貧しいデザインのように思えます。それは私の質問ではありません。
現在、ユーザーがログインすると、サーバーはユーザーが実際に何かを実行できるようにするには、すべてのクエリを完了する必要があります。つまり、タイムアウトが発生してページがリセットされるまで、ユーザーはログイン画面を表示します。最近、私たちは30分まで待ちました(!)
私はこのプロセスをスレッドに入れて、ユーザーがウェブサイトにログインして、必要な作業を行い、その作業を表示/削除できるようにしますメッセージ配信者によって妨げられることなくメッセージを送信します。
私の質問は、このプロセスを処理するために新しいスレッドを単に回転させて問題を解決します(つまり、配信者がメッセージを残している間に作業できるようにします)。また、同じサーバー上の他のWebアプリケーションに影響を与えるスレッドを停止しますか? KMのコメント
簡体スキーマに基づいて
EDIT:
タスクテーブル:
TaskID StartDate EndDate PercentComplete TSK1 4/17/09 5/17/09 60 TSK2 3/19/09 3/29/09 80 TSK3 1/1/08 2/9/09 100
割り当て表:
TaskID ResourceID TSK1 111 TSK1 222 TSK2 222 TSK2 333 TSK2 444 TSK3 111 TSK3 333
メッセージテーブルスキーマ:
Subject Receiver Sender Content Overdue Task 111 000 Task TSK1 is overdue. Overdue Task 222 000 Task TSK1 is overdue. Overdue Task 222 000 Task TSK2 is overdue. Overdue Task 333 000 Task TSK2 is overdue. Overdue Task 444 000 Task TSK2 is overdue.
このコードでは、すべての人が期限切れのタスクに割り当てられます。今日より早くEndDateし、!= 100%完了してください)、それらを伝えるメッセージを残してください
私は実際の問題は、メッセージを挿入する前にC#コードを使用してメッセージとトランザクションを構成します。
メッセージをタスクに参加させる方法についての情報を提供 –
メッセージはタスクに参加していません。私はタスクIDが必要なので、メッセージ本文に入れることができます。メッセージは、それらを読むメッセージであるため、メッセージに結合する必要があるリソースです。 –