問題タブ [asynccontroller]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
2957 参照

c# - C# Async MVC メソッドが ContentResult を返す System.Threading.Task.Task`1[System.Web.Mvc.JsonResult]

いくつかのメソッドを非同期に変換しようとしており、変更中のコントローラー内の簡単な例から始めました。

Json の結果ではなくメソッドをテストすると、文字列値 "System.Threading.Tasks.Task`1[System.Web.Mvc.JsonResult]" が得られます。これは、Fiddler とブラウジングで確認しました。

プロジェクトは手動で .NET45 にアップグレードされました。検索では、これは不適切なアセンブリ バージョンの問題である可能性があることが示唆されていますが、プロジェクト ファイルとプロセス ビューを確認すると、実行時に正しい型が参照およびロードされていることが示唆されます。

これに関するデバッグのヒントはありますか?

ありがとう。

0 投票する
1 に答える
1230 参照

asp.net-mvc - AsyncController の非同期アクションは、すぐに戻るのではなくリクエストをブロックします

AsyncController (MVC3) を使用するのはこれが初めてで、非同期アクションを理解するのに苦労しています。私の仕事は、Entity Framework を使用して、Excel から SQL Server データベースに適度な量のデータをインポートすることです。これは非同期操作に適していると考えたので、その目的のためにコントローラーを明示的に作成しました。非同期アクションを使用したコントローラーコードは次のとおりです

次の JQuery コードを使用して、非同期アクション (CampDonorImportAsync) を呼び出します。

reportImportProgress JavaScript 関数は、非同期アクションの現在の進行状況を表示する ReportImportProgress() アクションを呼び出します。

問題は、非同期メソッド ( CampDonorImportAsync ) への呼び出しが、同じページからの他の要求(上記のReportImportProgress()など) をブロックすることです。非同期タスクがまだ進行中であっても、他のリクエストを行うことができるように、非同期アクションの呼び出しはすぐに返されるはずだと思いました。非同期リクエストがブロックされ、すぐに戻るのではなく、タスクが完了するのを待つ理由がわかりません。何か案は ?

0 投票する
1 に答える
2070 参照

java - tomcat と spring による非同期 http リクエストの処理

これは私の最初のSOの質問なので、しばらくお待ちください:)

次のサービスを作成しようとしています。

  1. 照会する URL を含む HTTP GET 要求を受け取ります
  2. 単一の GET 要求の場合、サービスは URL を抽出します
  3. URL についてローカル DB にクエリを実行します
  4. DB で結果が見つかった場合はそれをクライアントに返します。そうでない場合は、いくつかの外部サービスにクエリを実行する必要があります (応答に比較的長い時間がかかる場合があります)。
  5. URL の結果をクライアントに返す

私はこれを仮想マシンと Tomcat7 with spring で実行しています。前もってお詫び申し上げます。私は Tomcat の初心者です。

とにかく、私はこのサービスに対して多くの同時 GET リクエスト (数十万の同時リクエスト) を期待しています.数十万の同時リクエストを処理できるサービス)

サービス、特にTomcatでの非同期リクエストの処理について多くのことを読んできましたが、まだ不明な点がいくつかあります:

  1. Tomcat の公式 Web サイトから、Tomcat には多数のアクセプター スレッドと多数の作業スレッドが含まれているようです。その場合、なぜ AsyncContext を使用する必要があるのでしょうか? Tomcat の作業スレッドを解放し、アプリケーションで別のスレッドを占有してまったく同じアクションを実行する利点は何ですか? (システムにはまだ 1 つのアクティブなスレッドがあります)
  2. 最初の質問と似ていますが、AsyncContext を作成して別のスレッドで使用する利点はありますか? (私のアプリケーションで作成されたスレッド プールからのスレッド)
  3. 同じ問題に関して、Callable または DeferredResult を返して、Tomcat のスレッドまたは自分のスレッドのいずれかで処理できることをここで確認しました。Callable を返すか、リクエストから AsyncContext を処理するだけで DeferredResult を使用する利点はありますか?
  4. また、callable を返すことにした場合、Tomcat はどのスレッド プールから呼び出し可能オブジェクトを処理するスレッドを取得しますか? ここで使用されているスレッドは、前に述べた Tomcat の作業スレッドと同じですか? その場合、Tomcat の作業スレッドを 1 つ解放し、代わりに別のスレッドを使用すると、どのようなメリットがありますか?
  5. Oracle のドキュメントから、同時に処理される Runnable オブジェクトを AsyncContext に渡すことができることがわかりました。この Runnable を実行するために使用されるスレッドはどこから来るのですか? 私はそれを制御できますか?また、AsyncContext を自分のスレッドの 1 つに渡すだけでなく、AsyncContext を Runnable に渡す利点はありますか?

同じことについて何度も質問して申し訳ありませんが、私と私の同僚はこれらのことについて 1 週間以上論争していますが、具体的な答えはありません。

もう 1 つ一般的な質問があります。私が説明したサービスをスケーラブルにするための最良の方法は何だと思いますか? (現時点でマシンを追加することは別として)、目的のソリューションの例や参照を投稿できますか?

見ているリンクのリンクをもっと投稿したいのですが、現在の評判では許可されていません。わかりやすい参考文献や具体的な例に感謝します。関連する問題について明確にさせていただきます。

乾杯!

0 投票する
1 に答える
1016 参照

asp.net-mvc-4 - 非同期の ActionResult 実装がブロックされています

わかった、

ここに MVC 4 アプリケーションがあり、その中で非同期 ActionResult を作成しようとしています。

目的 : ユーザーが Web ページにダウンロード PDF アイコンを持っていて、ダウンロードに時間がかかる。そのため、サーバーが PDF の生成でビジー状態である間、ユーザーは Web ページでいくつかのアクションを実行できます。

(「PDFのダウンロード」リンクをクリックすると、サーバーにajaxリクエストが送信され、サーバーはデータを取得してPDFをプッシュバックしています)

何が起こっているのかというと、ajax を呼び出して PDF をダウンロードしている間、プロセスが開始されますが、ブラウザーに戻らない限り、すべての要求がブロックされます。それは単純なブロック リクエストです。

これまでに試したこと。

1) AsyncController をコントローラーの基本クラスとして使用しました。

2) ActionResult を非同期タスク DownloadPDF() にしました。ここでは、PDF を生成するコード/ロジック全体をラッパーにラップしました。このラッパーは、最終的には DownloadPDF() 内で待機できるものになります。

このようなもの。

はい、オペレーションはセッションベースです。

どこかで何かが欠けていますか?

0 投票する
1 に答える
191 参照

c# - AsyncController のコンストラクターで HttpContext または Request オブジェクトにアクセスできない

AsyncController「AbstractAbcContoller」という言葉を使用しています

そして、新しく作成されたを継承するコントローラーがさらに3つありAbstractAbcContollerます。

これら 3 つのコントローラーのいずれかのコンストラクターを作成し、HttpContext/Request オブジェクトにアクセスしようとすると、常に null として取得されます。

HttpRequestBase をコンストラクターの引数として受け入れるサービス オブジェクトを初期化する必要があります。

代わりに、この回避策に落ち着かなければなりませんでした。

次に、コントローラー/アクションで次のようなものを使用します

私はちょっと好きではありません。どちらがより良い方法かわかりません。ご意見をお聞かせください。

0 投票する
0 に答える
260 参照

grails-3.0 - Grails 3.0 での非同期リダイレクト

Grails 3.0 コントローラーでの非同期リダイレクトが失敗します。

以下はコントローラーのスニペットの例です。

例外のスタック トレースは次のようになります。

これは休止状態セッションの問題のようですが、GORM がなく、それを防ぐ方法がわかりません。