blob: 302b525c77ef45e17da5e677710d89bc338bc5ea [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<title>CircuitBreaker</title>
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="CircuitBreaker";
}
}
catch(err) {
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../org/eclipse/microprofile/faulttolerance/Bulkhead.html" title="annotation in org.eclipse.microprofile.faulttolerance"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../org/eclipse/microprofile/faulttolerance/ExecutionContext.html" title="interface in org.eclipse.microprofile.faulttolerance"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/eclipse/microprofile/faulttolerance/CircuitBreaker.html" target="_top">Frames</a></li>
<li><a href="CircuitBreaker.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Required&nbsp;|&nbsp;</li>
<li><a href="#annotation.type.optional.element.summary">Optional</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#annotation.type.element.detail">Element</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.eclipse.microprofile.faulttolerance</div>
<h2 title="Annotation Type CircuitBreaker" class="title">Annotation Type CircuitBreaker</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<br>
<pre>@Inherited
@Retention(value=RUNTIME)
@Documented
<a href="../../../../javax/interceptor/InterceptorBinding.html" title="annotation in javax.interceptor">@InterceptorBinding</a>
@Target(value={METHOD,TYPE})
public @interface <span class="memberNameLabel">CircuitBreaker</span></pre>
<div class="block">Define the Circuit Breaker policy</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- =========== ANNOTATION TYPE OPTIONAL MEMBER SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="annotation.type.optional.element.summary">
<!-- -->
</a>
<h3>Optional Element Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Optional Element Summary table, listing optional elements, and an explanation">
<caption><span>Optional Elements</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Optional Element and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/microprofile/faulttolerance/CircuitBreaker.html#delay--">delay</a></span></code>
<div class="block">The delay.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>java.time.temporal.ChronoUnit</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/microprofile/faulttolerance/CircuitBreaker.html#delayUnit--">delayUnit</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>java.lang.Class&lt;? extends java.lang.Throwable&gt;[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/microprofile/faulttolerance/CircuitBreaker.html#failOn--">failOn</a></span></code>
<div class="block">Define the failure criteria</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>double</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/microprofile/faulttolerance/CircuitBreaker.html#failureRatio--">failureRatio</a></span></code>
<div class="block">The failure threshold to trigger the circuit to open.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/microprofile/faulttolerance/CircuitBreaker.html#requestVolumeThreshold--">requestVolumeThreshold</a></span></code>
<div class="block">The number of consecutive requests in a rolling window
that will trip the circuit.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/microprofile/faulttolerance/CircuitBreaker.html#successThreshold--">successThreshold</a></span></code>
<div class="block">For an open circuit, after the delay period is reached, once the successThreshold
is reached, the circuit is back to close again.</div>
</td>
</tr>
</table>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ ANNOTATION TYPE MEMBER DETAIL =========== -->
<ul class="blockList">
<li class="blockList"><a name="annotation.type.element.detail">
<!-- -->
</a>
<h3>Element Detail</h3>
<a name="failOn--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>failOn</h4>
<pre>public abstract&nbsp;java.lang.Class&lt;? extends java.lang.Throwable&gt;[]&nbsp;failOn</pre>
<div class="block">Define the failure criteria</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the failure exception</dd>
</dl>
<dl>
<dt>Default:</dt>
<dd>java.lang.Throwable.class</dd>
</dl>
</li>
</ul>
</li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="delay--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>delay</h4>
<pre>public abstract&nbsp;long&nbsp;delay</pre>
<div class="block">The delay. The value must be greater than or equal to 0. 0 means no delay.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The delay time after the circuit is open</dd>
</dl>
<dl>
<dt>Default:</dt>
<dd>5000L</dd>
</dl>
</li>
</ul>
</li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="delayUnit--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>delayUnit</h4>
<pre>public abstract&nbsp;java.time.temporal.ChronoUnit&nbsp;delayUnit</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The delay unit after the circuit is open</dd>
</dl>
<dl>
<dt>Default:</dt>
<dd>java.time.temporal.ChronoUnit.MILLIS</dd>
</dl>
</li>
</ul>
</li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="requestVolumeThreshold--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>requestVolumeThreshold</h4>
<pre>public abstract&nbsp;int&nbsp;requestVolumeThreshold</pre>
<div class="block">The number of consecutive requests in a rolling window
that will trip the circuit. The value must be greater than or equal to 1.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the number of the consecutive requests in a rolling window</dd>
</dl>
<dl>
<dt>Default:</dt>
<dd>20</dd>
</dl>
</li>
</ul>
</li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="failureRatio--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>failureRatio</h4>
<pre>public abstract&nbsp;double&nbsp;failureRatio</pre>
<div class="block">The failure threshold to trigger the circuit to open.
e.g. if the requestVolumeThreshold is 20 and failureRation is .50,
more than 10 failures in 20 consecutive requests will trigger
the circuit to open. The value must be between 0 and 1 inclusive.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The failure threshold to open the circuit</dd>
</dl>
<dl>
<dt>Default:</dt>
<dd>0.5</dd>
</dl>
</li>
</ul>
</li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="successThreshold--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>successThreshold</h4>
<pre>public abstract&nbsp;int&nbsp;successThreshold</pre>
<div class="block">For an open circuit, after the delay period is reached, once the successThreshold
is reached, the circuit is back to close again. The value must be greater than or equal to 1.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The success threshold to fully close the circuit</dd>
</dl>
<dl>
<dt>Default:</dt>
<dd>1</dd>
</dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../org/eclipse/microprofile/faulttolerance/Bulkhead.html" title="annotation in org.eclipse.microprofile.faulttolerance"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../org/eclipse/microprofile/faulttolerance/ExecutionContext.html" title="interface in org.eclipse.microprofile.faulttolerance"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/eclipse/microprofile/faulttolerance/CircuitBreaker.html" target="_top">Frames</a></li>
<li><a href="CircuitBreaker.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Required&nbsp;|&nbsp;</li>
<li><a href="#annotation.type.optional.element.summary">Optional</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#annotation.type.element.detail">Element</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>