서비스를 중단하기 위해 json 메시지를 게시하는 http 아웃 바운드 게이트웨이가 있습니다. 나머지는 응용 프로그램에서 캡처해야하는 오류가있는 경우 json 메시지 유형의 http 오류 상태로 응답합니다. 해피 시나리오에서 해당 휴식 서비스에 json 메시지를 게시하고 http 성공 상태를 얻었으며 json 메시지도 애플리케이션과 함께 캡처해야합니다.스프링 통합 HTTP 아웃 바운드 게이트웨이 타임 아웃 처리
이제 스프링 통합을 통해 나는 메시지를 보내고 성공 응답을 얻었지만 그것을 캡처 할 수 있었지만 오류 상태에서는 스프링 동작이 예외를 throw하여 어떻게 동작을 변경할 수 있습니까?
시간 제한이있는 경우 어떻게 다시 시도 할 수 있습니까? 단지 시간 제한이있는 경우 위의 구성은 내가 그에 다시 시도하지 않을 오류 메시지에 다시 시도 할 HTTP 아웃 바운드 게이트웨이 구성
<int-http:outbound-gateway request-channel="aggregatorChannel" reply-channel="responseChannel" charset="UTF-8"
url="http://localhost:8090/receiveGateway" http-method="POST" reply-timeout="180000">
<int-http:request-handler-advice-chain >
<int:retry-advice max-attempts="5" recovery-channel="aggregatorChannel" >
<int:exponential-back-off initial="1000" multiplier="5.0" maximum="600000" />
</int:retry-advice>
</int-http:request-handler-advice-chain>
</int-http:outbound-gateway>
아래
, 나는 다시 시도합니다.
좋다! 하지만 타임 아웃 연결시 다시 시도 할 수있는 방법은 무엇입니까? 첫 눈에 띄는 점은 쉽게 알 수 있지만 미스터리를 맞추는 방법은 위의 구성에서 어떻게 설명 할 수 있습니까? –
타임 아웃시이를 구현할 수없는 것 같습니다. –
방법은 'SimpleRetryPolicy'에 대한 [javadocs] (http://docs.spring.io/spring-retry/docs/1.1.2.RELEASE/apidocs/org/springframework/retry/policy/SimpleRetryPolicy.html)를 참조하십시오. 재시도를 적용 할 예외를 구성합니다. –