Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache camel 如何在Apache Camel中结合重试和断路器?_Apache Camel_Circuit Breaker - Fatal编程技术网

Apache camel 如何在Apache Camel中结合重试和断路器?

Apache camel 如何在Apache Camel中结合重试和断路器?,apache-camel,circuit-breaker,Apache Camel,Circuit Breaker,我想重试3次,然后将失败阈值增加到1。当这个阈值达到5时,我想在Apache Camel中打开电路 我知道Camel中有断路器支持,但是我找不到一个可以将重试与之结合的示例 非常感谢您的帮助 提前谢谢 Ramesh.你能试试下面的代码吗 <!-- Just Throws an exception of type MyException which is a custom Exception --> <bean id="myBean" class="com.camel.exam

我想重试3次,然后将失败阈值增加到1。当这个阈值达到5时,我想在Apache Camel中打开电路

我知道Camel中有断路器支持,但是我找不到一个可以将重试与之结合的示例

非常感谢您的帮助

提前谢谢


Ramesh.

你能试试下面的代码吗

<!--  Just Throws an exception of type MyException which is a custom Exception -->
<bean id="myBean" class="com.camel.examples.MyExceptionClass" />
<camel:errorHandler id="defaultErrorHandler" type="DefaultErrorHandler">
    <camel:redeliveryPolicy maximumRedeliveries="3"
        redeliveryDelay="1000" logStackTrace="false" />
</camel:errorHandler>
<camel:camelContext>
    <camel:route>
        <camel:from uri="timer:foo?repeatCount=8&amp;period=10000" />
        <camel:setBody>
            <camel:constant>Sundar</camel:constant>
        </camel:setBody>
        <camel:loadBalance>
            <camel:circuitBreaker threshold="5" halfOpenAfter="1000">
                <camel:exception>java.lang.Exception</camel:exception>
            </camel:circuitBreaker>
            <camel:to uri="direct:a" />
        </camel:loadBalance>
    </camel:route>
    <camel:route id="myroute" errorHandlerRef="defaultErrorHandler">
        <camel:from uri="direct:a" />
        <camel:process ref="myBean"></camel:process>
        <camel:log message="${exception}]" />
    </camel:route>
</camel:camelContext>
MyException类

package com.camel.examples;

public class MyException extends Exception{

    public MyException() {
    super();

    }

    public MyException(String message){
        super("My Exception : "+message);
    }
}
package com.camel.examples;

public class MyException extends Exception{

    public MyException() {
    super();

    }

    public MyException(String message){
        super("My Exception : "+message);
    }
}