2017-03-16 5 views
2

서비스 스택을 사용하여 RESTful 서비스 작성을 빌드하고 깊이있는 지식이 없습니다. 이것은 요청을 보내고 응답을 되 찾는 것입니다. 시나리오가 있는데 내 질문은 그것에 달려있다.요청 및 응답이 서비스 스택에서 프로세스를 얻는 방법은 무엇입니까?

시나리오 : 브라우저 또는 서버로 요청을 보낼 수있는 클라이언트로부터 요청을 보내고 있습니다. 서버가 단일 요청을 처리하고 브라우저에 응답을 보내려면을 3 초가 소요됩니다. 1 초 후, 같은 브라우저 (클라이언트)에서 서버에 다른 요청을 보냈습니다. 이제 나중에 보낸 두 번째 요청에 대한 응답을 받고 있습니다.

질문 1 : 질문 1 : 응답을받지 못한 첫 번째 요청에 무슨 일이 일어나고 있는지.

질문 2 : 고아 요청 처리를 어떻게 중지 할 수 있습니까?

편집 : IIS 서버를 사용하여 서비스를 호스팅했습니다.

답변

3

ServiceStack executes requests concurrently on multithreaded web servers (ASP.NET/ISIS에서 호스팅하든 자체 호스팅 중인지에 관계없이 2 개의 동시 요청이 서로 다른 스레드에서 동시에 실행되고 있음). 서비스에서 비동기 작업을 실행하여 스레드가 다른 작업을 실행할 수있는 경우에는 여러 가지 시나리오가 가능하지만 여기서는 구현 세부 사항이 거의 부적합합니다.

HTTP 웹 요청은 클라이언트 연결이 끊어져도 끝까지 실행되므로 서비스에 알리지 않고 예외가 발생하지 않습니다.

그러나 장시간 실행되는 서비스의 경우 클라이언트가 장기 실행 요청을 취소 할 수있는 방법을 사용하는 상위 레벨 ServiceStack's Cancellable Requests Feature을 사용할 수 있습니다.

+0

클라이언트 컬렉션이 손실되면 서비스에 대한 알림이없고 예외가 발생하지 않지만 질문 1에는 답이 없습니다. –

+0

@RavindraSinare 다른 스레드에서 동시에 실행되는 두 응답이 모두 응답되었습니다 – mythz

+1

두 개가 동시에 실행 중이고 둘 다 완료하기 전에 세 번째를 보냈습니다. 둘 다 어떻게됩니까? –

관련 문제