1

我正在通过 http 出站网关连接到 GET REST 服务。以下代码片段来自 spring 集成 XML

<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 ,出站网关应该能够自动重试特定的设定次数,直到它最终出错出去。

我可以获得一个已实施的示例供我参考吗?

谢谢!

4

2 回答 2

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>

我认为参数很清楚,最大尝试次数是您要重新发送消息的恢复通道。内部元素是等待时间

于 2014-12-15T20:44:15.400 回答
0

您可以在回复通道中处理响应。您可以使用服务激活器来处理它,解析响应,然后决定是否重试。请记住,回复通道中的回复是原始消息,因此您可以轻松地重新发送。

于 2014-07-27T18:05:06.430 回答