0

別のタスクでビジー状態のときに、.NET サーバーに XHR 要求を要求することはできますか? 基本的に、私は電子商取引アプリケーションに取り組んでいます。これは、毎週、毎月などの購入の請求書を一度に生成します。そのため、請求書を生成する過程で多くの計算が行われ、データベースの読み取りと書き込みが行われます。サーバー側で行われますが、ユーザーはサーバーによる進行状況を知らずに、完全なプロセスがすぐに終了するのを待つことしかできません。プロジェクトの要件によると、アプリケーションは一度に数千の請求書を生成する可能性があるため、かなりの時間がかかると思います。

それで、私は、ASP.NET、C#、およびjQueryで、請求書の生成で忙しいときにサーバーからXHRを要求するためのコードを記述して、サーバーによる進行状況を知ることができるのではないかと考えていました.

プロセスは次のようになります。

  1. ユーザーは画面で請求書生成の条件を選択し、[請求書の生成] ボタンをクリックします。
  2. サーバーは要求を取得し、生成されるレコードまたは請求書の数を返すためにデータベースで最初の読み取り操作を行い、同時に請求書の生成を開始します。
  3. その出力はRead()クライアント システムに送信され、クライアント側では、モーダル ポップが開始され、処理されるレコード数と完了したプロセスを示すプログレス バーが表示されます。

クライアントが要求を開始しない限り、サーバーはそれ自体で応答を送信できないため、クライアントは XHR を 10 ~ 20 秒ごとに送信して、請求書生成プロセスでサーバーが行った進行状況を知ることができると思います。

しかし、ここで実際の問題が発生します。サーバーは同じアプリケーション ドメインに応答せず、請求書生成の以前に要求されたプロセスを完了する前に、進行状況を通知しない場合があります。そうしないと、以前のプロセスが壊れる可能性があります。

複数のスレッドを使用して実行できますか? または、.NET の他の方法論かもしれません。

私のアプリケーションは C# を使用した ASP.NET であり、コード例または参照を含む回答をいただければ幸いです。

4

0 に答える 0