2013-01-09 4 views
0

나는 1.2.5 버전을 사용하고 있으며, REST 서비스에 비동기 호출을하고있다.await() in play 1.2.5

나는 promise 객체를 생성하고이 약속 객체를 await() 메소드의 매개 변수로 지정했다. await() 메소드는 httpResponse 객체를 리턴한다.

잘 작동하면 REST 서비스가 응답을 반환합니다. 그러나 REST 서비스가 응답하지 않으면 (REST 서비스가 중단되어있을 수 있음) httpResponse에 null이 표시됩니다. 그러나 응답을 되 찾는 데는 다소 시간이 걸립니다.

나머지 서비스가 약속에 응답 할 때까지 기다려야하는 시간을 구성 할 수 있습니까? 그렇지 않다면 기본 대기 시간은 얼마입니까? 당신이 플레이 WS를 사용하는 경우 어떤 도움을 크게

+0

어떤 언어를 사용하고 있습니까? 스칼라? – svick

+0

REST 서비스를 호출하기위한 언어로 java를 사용하고 있습니다. – user1630693

+0

아마도 REST 응답에 대한 응답으로 약속을 해결할 것입니다. 마찬가지로, REST가 시간 초과되거나 오류를 반환하면 약속을 거부해야합니다. 이것이 정확히 어떻게 행해지는지 (그리고 사용 된 용어)는 당신의 약속에 사용하는 라이브러리에 달려있다. –

답변

1

을 이해할 수있을 것이다

는 응답이 없을 경우 당신은 당신이 전화가 다시 반환하기 전에 초에 소요되는 시간을 정의 할 수 있습니다 WSRequest 개체에 대한 시간 제한 방법을 가지고에서는 lib

0

WSRequest에 대한 제한 시간 호출이 있습니다.

WS.WSRequest wsReq = WS.url("http://whatever"); 
wsReq.timeout("1min"); 

... 

postAsync()을 수행하면 약속이 취소됩니다. promise.onRedeem()으로 전화하여 오류 처리 등의 처리기를 추가 할 수도 있습니다.이 오류를 사용하여 시간 초과 예외를 잡을 수 있습니다.

+0

도움 주셔서 감사합니다. "timeout()"을 사용하여 요청에 시간 초과를 두는 것은 좋은 생각입니다. 하지만 작동하지 않습니다. – user1630693