2017-03-16 16 views
2

サービススタックを使用して、RESTfulサービスの作成を行います。深い知識はありません。これは要求を送信し、応答を返すものとして機能します。私はシナリオを持っており、私の質問はそれに依存しています。要求と応答がサービススタックでどのように処理されますか?

シナリオ:私はサーバーまたはサーバーにリクエストを送信できるブラウザまたはクライアントからリクエストを送信しています。 サーバーが1つの要求を処理し、ブラウザに応答を返すためにに3秒かかると考えてください。 1秒後に、同じブラウザ(クライアント)から別のリクエストをサーバーに送信しました。今度は私が後で送った第二の要求の応答を得ています。

質問1:質問1:私は応答を得ていない最初の要求で何が起こっているのですか?

質問2:孤児のリクエストの処理をどのように停止できますか。

編集:IISサーバーを使用してサービスをホストしました。

答えて

3

ServiceStack executes requests concurrently on multithreaded web serversは、ASP.NET/ISISでホストしているか、ホストされているかどうかにかかわらず、2つの同時リクエストが異なるスレッドで同時に実行されています。異なるタスクを実行するためにスレッドを解放する非同期タスクをサービスで実行している場合、さまざまなシナリオが可能ですが、ここでの実装の詳細はほとんど無関係です。

クライアントの接続が失われた場合でも、HTTP Web要求はそれぞれ最後まで実行されます。サービスは通知されず、例外も発生しません。

長時間実行しているサービスでは、クライアントが長期実行要求を取り消す方法を可能にする上位レベルのServiceStack's Cancellable Requests Featureを有効にすることができます。

+0

クライアントのコレクションが失われた場合、サービスは通知されず、例外も発生しませんが、質問1には依然として未回答です。 –

+0

@RavindraSinareそれは答えられました、両方のスレッドで同時に実行されています – mythz

+1

2つはすでに同時に実行されていて、その両方を完了する前に私は3番目を送信していますか?両方ともどうなるの? –

関連する問題