バックグラウンドでタスクを実行しますが、ASP MVCWebアプリケーションでクライアントに応答を返します

ポール

ASP MVCアプリケーションから呼び出されてバックグラウンドで処理される必要があるSQLServer上のストアドプロシージャがある機能を実装しようとしています(別のストアドプロシージャをリモートで呼び出して、に保存されているExcelファイルを処理するために時間がかかる場合がありますサーバー)。ただし、UIが処理を待機してハングしないように、最後のHTTP要求の応答をクライアントに返す必要があります。

さまざまな方法を試しましたが、UIがすぐに応答しません。

私は試しましたBackgroundWorkerが、処理が完了するまでメインスレッドがクライアントに応答することを許可していません。また、次のことを試しました。

Thread.QueueUserWorkItem(delegate { //method which performs stored procedure calls//
}); 

それでも応答を返さHttpContext.Currentず、バックグラウンドスレッドでは使用できません。

たぶん、バックグラウンド処理を開始し、メインスレッドがブラウザに応答を返すように一時停止してから、バックグラウンドスレッドを再開して、ストアドプロシージャ呼び出しですべての処理を行う方法がありますか?

私は何かが足りないのですか?

誰かが私がこの問題を解決する方法についてアイデアを教えてもらえますか?よろしくお願いします。

ポール

私が最終的に得たもので、私の場合は問題なく動作します。効率についてはよくわかりませんが、完全に機能します。したがって、ストアドプロシージャを呼び出すコードは別のスレッドに配置し、バックグラウンド呼び出しの処理が別のスレッドで行われている間にメインスレッドが終了し、しばらくすると正常に終了するようにします。同時にUIが利用可能であるため、ユーザーは同じ方法で処理される別のリクエストを行うことができます。3つのリクエストをテストしました。次々と重複しています。つまり、最初のリクエストがバックグラウンドで処理されている間に、別のリクエストを送信し、さらに別のリクエストを送信しました。UIはすぐに応答し、すべての作業が完了しました。

// ...main thread is working here
    //put a call to stored procedure on a separate thread
    Thread t = new Thread(()=> {
       //call stored procedure which will run longer time since it calls another remote stored procedure and
       //waits until it's done processing
    });
    t.Start();

   // ...main thread continue to work here and finishes the request so it looks for user as the response is coming right away, all other stuff is being processed on that new thread so user even doesn't suspect

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

アプリケーションが使用中またはバックグラウンドで停止時に開始するアプリでタイミングプロセスを正しく実行するにはどうすればよいですか?

分類Dev

iOSでバックグラウンドに移動しながらクリーンアップタスクを実行します

分類Dev

バックグラウンドでタスクを実行するiOSアプリケーション

分類Dev

Express.js:クライアントに応答を送信した後にバックグラウンドタスクを実行します

分類Dev

GUIベースのアプリケーションはバックグラウンドでシェルコマンドを実行しますか?

分類Dev

GUIベースのアプリケーションはバックグラウンドでシェルコマンドを実行しますか?

分類Dev

MVCWebサイトをアプリケーションとしてMVCWebサイトにデプロイします

分類Dev

角度コントローラーMVCWebアプリケーションでJson文字列をオブジェクトリストに変換します

分類Dev

バックグラウンドでsshセッションを介してサーバー上でPythonスクリプトを永続的に実行します

分類Dev

バックグラウンドで15分後にアプリケーションを終了します

分類Dev

UbuntuGNOME14.04のバックグラウンドでスタートアップアプリケーションを追加します

分類Dev

ASP MVCで大量の重要なバックグラウンドタスクを実行していますか?

分類Dev

C#-サーバーPCにインストールされたクライアントPCでwinformアプリケーションを実行します

分類Dev

URL「/セッション」は有効なリソースにマッピングされませんでした| Javaを使用してwinAppDriver / Windowsアプリケーションのドライバを使用してデスクトップアプリケーションのテストを実行するには?

分類Dev

GUIアプリケーションをバックグラウンドで実行し、後で再接続します

分類Dev

Ubuntuサーバーでバックグラウンドでrスクリプトを実行します

分類Dev

バックグラウンドスレッドで実行されているタスクからアニメーションを開始します

分類Dev

iOSアプリケーションがフォアグラウンドにあるときにバックグラウンドで操作を実行する方法

分類Dev

分割画面でバックグラウンドタスクをプログラムで実行しますか?

分類Dev

ASP.NET MVCWebアプリケーションで静的グローバル変数クラスを使用する

分類Dev

アプリケーションがバックグラウンドで実行されているときに着信のイベントを取得する

分類Dev

iOSアプリケーションをバックグラウンドで永久に実行し続ける

分類Dev

アプリケーションがバックグラウンドで実行されたときにスレッドが強制終了されましたか?

分類Dev

コンソールアプリケーションのバックグラウンドでタスクを永続的に実行する

分類Dev

android起動時にアプリケーションをバックグラウンドで実行する方法

分類Dev

アプリケーションがバックグラウンドに移行すると、完了したバックグラウンドタスクを処理できません

分類Dev

asp.net mvcWebアプリケーションを実行しているIISによってマップされたドライブにアクセスします

分類Dev

バックグラウンドスクリプトが強制終了されたらアクションを実行します

分類Dev

ユーザーがデバイスのホームボタンを押してフォアグラウンドアプリをバックグラウンドに送信すると、バックグラウンドアプリケーションのUIがぼやける必要があります

Related 関連記事

  1. 1

    アプリケーションが使用中またはバックグラウンドで停止時に開始するアプリでタイミングプロセスを正しく実行するにはどうすればよいですか?

  2. 2

    iOSでバックグラウンドに移動しながらクリーンアップタスクを実行します

  3. 3

    バックグラウンドでタスクを実行するiOSアプリケーション

  4. 4

    Express.js:クライアントに応答を送信した後にバックグラウンドタスクを実行します

  5. 5

    GUIベースのアプリケーションはバックグラウンドでシェルコマンドを実行しますか?

  6. 6

    GUIベースのアプリケーションはバックグラウンドでシェルコマンドを実行しますか?

  7. 7

    MVCWebサイトをアプリケーションとしてMVCWebサイトにデプロイします

  8. 8

    角度コントローラーMVCWebアプリケーションでJson文字列をオブジェクトリストに変換します

  9. 9

    バックグラウンドでsshセッションを介してサーバー上でPythonスクリプトを永続的に実行します

  10. 10

    バックグラウンドで15分後にアプリケーションを終了します

  11. 11

    UbuntuGNOME14.04のバックグラウンドでスタートアップアプリケーションを追加します

  12. 12

    ASP MVCで大量の重要なバックグラウンドタスクを実行していますか?

  13. 13

    C#-サーバーPCにインストールされたクライアントPCでwinformアプリケーションを実行します

  14. 14

    URL「/セッション」は有効なリソースにマッピングされませんでした| Javaを使用してwinAppDriver / Windowsアプリケーションのドライバを使用してデスクトップアプリケーションのテストを実行するには?

  15. 15

    GUIアプリケーションをバックグラウンドで実行し、後で再接続します

  16. 16

    Ubuntuサーバーでバックグラウンドでrスクリプトを実行します

  17. 17

    バックグラウンドスレッドで実行されているタスクからアニメーションを開始します

  18. 18

    iOSアプリケーションがフォアグラウンドにあるときにバックグラウンドで操作を実行する方法

  19. 19

    分割画面でバックグラウンドタスクをプログラムで実行しますか?

  20. 20

    ASP.NET MVCWebアプリケーションで静的グローバル変数クラスを使用する

  21. 21

    アプリケーションがバックグラウンドで実行されているときに着信のイベントを取得する

  22. 22

    iOSアプリケーションをバックグラウンドで永久に実行し続ける

  23. 23

    アプリケーションがバックグラウンドで実行されたときにスレッドが強制終了されましたか?

  24. 24

    コンソールアプリケーションのバックグラウンドでタスクを永続的に実行する

  25. 25

    android起動時にアプリケーションをバックグラウンドで実行する方法

  26. 26

    アプリケーションがバックグラウンドに移行すると、完了したバックグラウンドタスクを処理できません

  27. 27

    asp.net mvcWebアプリケーションを実行しているIISによってマップされたドライブにアクセスします

  28. 28

    バックグラウンドスクリプトが強制終了されたらアクションを実行します

  29. 29

    ユーザーがデバイスのホームボタンを押してフォアグラウンドアプリをバックグラウンドに送信すると、バックグラウンドアプリケーションのUIがぼやける必要があります

ホットタグ

アーカイブ