0

我不确定如何应用逻辑来处理这个问题。

我有一个简单的流程,我在流程之间使用服务。我一直尝试直到成功,但它需要 Max retries 字段(但我不想通过提供任何数字来限制我的重试)。对于我的场景,我不确定我的消费服务何时启动,但需要重试直到服务启动并运行(不需要重试耗尽)。任何人都可以建议处理这种情况。

          <flow name="newFlow1" doc:name="newFlow1">
    <http:inbound-endpoint exchange-pattern="request-response" host="localhost" port="8081" path="ttt" doc:name="HTTP"/>
    <byte-array-to-string-transformer doc:name="Byte Array to String"/>
    <logger message="**********test****#[payload]" level="INFO" doc:name="Logger"/>
    <until-successful doc:name="Until Successful">
        <http:outbound-endpoint exchange-pattern="request-response" host="localhost" port="8089" path="new"  method="POST" doc:name="HTTP"/>
    </until-successful>

    <set-payload value="'Return Response'" doc:name="Set Payload"/>

   </flow>

还尝试了 Max Retries 直到成功为“-1”(以无限重试),但它不接受负值。尝试使用 HTTP 连接器重试连接策略(但它似乎适用于 JMS 或 JDBC)。您能否请任何人建议处理此问题。提前致谢。

编辑:

 <http:connector name="HttpConnector" doc:name="HTTP-HTTPS">
<reconnect-forever    />
</http:connector>

<flow name="new1Flow1" doc:name="new1Flow1">
    <http:inbound-endpoint exchange-pattern="request-response"   doc:name="HTTP"   path="ttt" responseTimeout="30000" host="localhost" port="8081" />
    <logger message="***entered***" level="INFO" doc:name="Logger"/>
    <http:outbound-endpoint exchange-pattern="request-response" host="localhost" port="8089" path="new" connector-ref="HttpConnector" method="POST" doc:name="HTTP"/>
    <logger message="**Http StatusCode***#[message.inboundProperties['http.status']]" level="INFO" doc:name="Logger"/>  
</flow>

它没有重试,因为服务已关闭我只能在控制台中看到以下错误消息一次。(但我们应该在控制台中多次收到错误消息,直到服务启动)

     Failed to route event via endpoint: DefaultOutboundEndpoint{endpointUri=http://localhost:8089/new, connector=HttpConnector

请建议。

4

1 回答 1

0

您可以首先定义一个 http 连接器,该连接器将具有永远重新连接的属性

<http:connector name="HttpConnector" >
    <reconnect-forever  frequency="2000"  />
</http:connector>

那么您可以让您的入站或出站端点像这样使用该连接器引用

 <http:inbound-endpoint connector-ref="HttpConnector" .../>

或者

<http:outbound-endpoint connector-ref="HttpConnector" .../>

希望这可以帮助!

祝你好运!

于 2014-12-22T12:38:05.017 回答