2013-08-23 3 views
1

Я подключаюсь к исходящему шлюзу службы GET REST. Следующий код snippent от пружинного интеграции XMLВесенняя интеграция - реализация логической ошибки повторного шлюза http-исходящего шлюза

<http:outbound-gateway request-channel="dispatcherchannel" 
    http-method="GET" 
    url="http://ip:port/cacheAPI/Cache/fetch?employeeNumber={employeeNumber}" 
    reply-channel="outboundreplychannel" 
    expected-response-type="com.service.Employees"> 
<http:uri-variable name="empoyeeNumber" expression="payload"/> 
</http:outbound-gateway> 

Я хочу знать, как установить механизм повторных попыток в этом шлюзе, так что, если служба остальное дает плохой код ответа, как 400/500/404, тем oubound шлюз должен иметь возможность автоматически повторять попытку за определенное количество раз, пока он, наконец, не выйдет из строя.

Могу ли я получить реализованный образец для моей справки?

Спасибо!

ответ

0

Вы можете обрабатывать ответ в канале ответа. Вы можете обработать его активатором службы, проанализировать ответ и затем принять решение о повторной попытке или нет. Имейте в виду, что в канале ответа вместе с ответом находится исходное сообщение, поэтому вы можете легко отправить его повторно.

0

вы футляром уже обрабатывают с помощью Spring, и вы можете достичь с помощью

 <int-http:request-handler-advice-chain > 
     <int:retry-advice max-attempts="5" recovery-channel="channelWantSendMessagTo" > 
      <int:exponential-back-off initial="1000" multiplier="5.0" maximum="600000" /> 
     </int:retry-advice> 
    </int-http:request-handler-advice-chain> 

Я думаю, что параметры довольно ясно, максимальное число попыток канала восстановления попыток, где вы хотите отправить сообщение. Внутренний элемент предназначен для времени ожидания

Смежные вопросы