REST를 사용하여 값을 검색하려면 외부 업체에 연락해야하지만 10ms 내에 응답을받지 못하면 기본값을 사용하고 계속 진행하려고합니다 처리.서버 측 웹 요청에 엄격한 제한 정책 적용
비동기 WebRequest를 사용하는쪽으로 향하고 있지만 동기 요청을 사용하여 트릭을 수행했는지 궁금합니다.
어떤 조언이 필요합니까?
REST를 사용하여 값을 검색하려면 외부 업체에 연락해야하지만 10ms 내에 응답을받지 못하면 기본값을 사용하고 계속 진행하려고합니다 처리.서버 측 웹 요청에 엄격한 제한 정책 적용
비동기 WebRequest를 사용하는쪽으로 향하고 있지만 동기 요청을 사용하여 트릭을 수행했는지 궁금합니다.
어떤 조언이 필요합니까?
요청을 보내고 돌아 오기를 기다리는 경우 동기 상태라고 말하고 싶습니다. 아무 것도하지 않거나 기다리는 동안 응답하지 않는 경우 비동기 요청을 수행 할 이유가 없습니다. 당신은 시간 제한 자신을 확인해야합니다, 더 내장 없다 -
가 당신은 Request 오브젝트에 대해 중단()를 호출해야합니다가 :
WebRequest request = WebRequest.Create("http://something.somewhere/url");
WebResponse response = null;
request.Timeout = 10000; // 10 second timeout
try
{
response = request.GetResponse();
}
catch(WebException e)
{
if(e.Status == WebExceptionStatus.Timeout)
{
//something
}
}
만약 일을 비동기 : 동기화 호출에 대한
힘든 시간 초과를 시행하는 방법.
콜백을 기다리는 동안 비동기식으로 CPU가 안정되게하지 않겠습니까? 아마도 그렇지는 않지만 내가 쓰는 서비스로했던 것입니다. 30 초마다 웹 사이트를 호출하지만 비동기 적으로 수행합니다. 마지막 요청이 완료되기 전에 30 초가 지나면 잠자기 모드로 돌아갑니다. –
적어도 .NET 웹 서비스를 사용하면 어쨌든 동기식 호출은 실제로 비동기식입니다. – MusiGenesis
WebService의 제 3 자 호출을 캡슐화 할 수 있습니다. 그런 다음 응용 프로그램에서이 WebService를 동 기적으로 호출 할 수 있습니다. 웹 서비스 참조에는 10 초 또는 기타로 설정할 수있는 간단한 시간 초과 속성이 있습니다.
WebService에서 타사 데이터를 가져 오기 위해 호출하면 제한 시간이 경과 한 후 WebException이 throw됩니다. 그것을 잡아서 대신 기본값을 사용하십시오.
편집 : 위의 필립 응답이 좋습니다. RIF.
웹 요청과 관련하여 10ms * really *는 그렇게 길지 않습니다. 이론 캐싱이 도움이 될지라도 기본 설정을 사용하는 것이 더 자주 있습니다. 일반적으로이 질문은 단순히 타임 아웃과 비동기로 작업하는 것에 불과합니다. – thecoshman