クライアントの要求を受け入れ、内部的にリモートマシンに接続してジョブを実行するWCFサービスを作成する必要があります。リモートマシンは非常に優れた処理能力を備えていますが、処理速度は良くありません。つまり、毎秒1000トランザクションを処理できますが、各トランザクションには1秒かかる可能性があるため、唯一の方法は、1.000同時トランザクションを同じ秒で実行することです。WCF非同期サーバー側の処理
リモートマシンがこの状況を非常にうまく処理していますが、各トランザクションが内部的に(クライアント側のモデル(同期または非同期)に気を配っていない)WCFを心配しています。 2秒で、これは1.000の作業スレッドが生きていることを表しているかもしれません。それは非常に危険かもしれません。あるいは、WCFがスレッドプールを使用して、他の人を待機状態にしてしまいます。
私の質問は、サーバー側で要求を非同期に処理する可能性についてです。だから、トランザクションの流れは次のようにする必要があります
- Cliente要求(彼の側で同期要求である)
- サーバーは要求をreciveとトランザクションキューにこの要求を入れて、スレッド
- を解放する初期化タスクが終了すると、サーバーはHTTP 200と結果をクライアントに送信する要求を完了します。
ありがとう!
IISでwcfサービスを提供している場合は、上記のいずれも行う必要はありません。 IISは要求ごとに個別のスレッドをスプールアップし、wcfの新しいインスタンスをインスタンス化し、要求を処理して結果を返します。既存のスレッドが利用可能な場合、IISは新しいスレッドをスプールする代わりに、そのスレッドを使用します。 – edepperson
スレッド「飽和」の問題を解決できない場合は、再利用スレッドではない非同期処理が必要です –