我想为HTTP调用设置一个重试策略,以防偶尔出现网络故障,所以我配置如下:
<http:connector name="HTTP_Retry" cookieSpec="netscape" validateConnections="true" sendBufferSize="0" receiveBufferSize="0" receiveBacklog="0" clientSoTimeout="10000" serverSoTimeout="10000" socketSoLinger="0" doc:name="HTTP\HTTPS">
<reconnect frequency="1000" count="3"/>
</http:connector>
....
<http:outbound-endpoint address="http://localhost:18081/mule/TheCreditAgencyService" doc:name="HTTP" exchange-pattern="request-response" method="POST" connector-ref="HTTP_Retry"/>
但是重试策略没有应用,即使我配置了客户重试策略,我调试了应用程序,设置了断点,程序也没有运行到我的客户类中。
我阅读了文档,但只有jms的示例。
有什么建议吗?我错过配置了吗?
提前谢谢!
最佳答案
命名错误的重试策略负责在失败时重新连接连接器而不是重新发送消息。
在断开连接的连接器(如http连接器)上,重试策略无效。它在jms这样的连接器上很有用,在jms中,一个永久的连接被维护到一个代理,这个连接在发生故障时需要重新连接。
你想要的是until-successful routing message processor。
关于http - HTTP的mule3重试策略,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18071240/