blob: 18c649115d6ebbc8564c95496220c5c253f830d7 [file] [log] [blame]
<!DOCTYPE HTML>
<html lang="de">
<head>
<!-- Generated by javadoc (17) -->
<title>KafkaSpoutRetryService (Storm 2.6.2 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="declaration: package: org.apache.storm.kafka.spout, interface: KafkaSpoutRetryService">
<meta name="generator" content="javadoc/ClassWriterImpl">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../script-dir/jquery-ui.min.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../jquery-ui.overrides.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../script-dir/jquery-3.6.1.min.js"></script>
<script type="text/javascript" src="../../../../../script-dir/jquery-ui.min.js"></script>
</head>
<body class="class-declaration-page">
<script type="text/javascript">var evenRowColor = "even-row-color";
var oddRowColor = "odd-row-color";
var tableTab = "table-tab";
var activeTableTab = "active-table-tab";
var pathtoroot = "../../../../../";
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flex-box">
<header role="banner" class="flex-header">
<nav role="navigation">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="top-nav" id="navbar-top">
<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div>
<ul id="navbar-top-firstrow" class="nav-list" title="Navigation">
<li><a href="../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="nav-bar-cell1-rev">Class</li>
<li><a href="class-use/KafkaSpoutRetryService.html">Use</a></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#class">Help</a></li>
</ul>
</div>
<div class="sub-nav">
<div>
<ul class="sub-nav-list">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method-summary">Method</a></li>
</ul>
<ul class="sub-nav-list">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method-detail">Method</a></li>
</ul>
</div>
<div class="nav-list-search"><label for="search-input">SEARCH:</label>
<input type="text" id="search-input" value="search" disabled="disabled">
<input type="reset" id="reset-button" value="reset" disabled="disabled">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<span class="skip-nav" id="skip-navbar-top"></span></nav>
</header>
<div class="flex-content">
<main role="main">
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">org.apache.storm.kafka.spout</a></div>
<h1 title="Interface KafkaSpoutRetryService" class="title">Interface KafkaSpoutRetryService</h1>
</div>
<section class="class-description" id="class-description">
<dl class="notes">
<dt>All Superinterfaces:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/io/Serializable.html" title="class or interface in java.io" class="external-link">Serializable</a></code></dd>
</dl>
<dl class="notes">
<dt>All Known Implementing Classes:</dt>
<dd><code><a href="KafkaSpoutRetryExponentialBackoff.html" title="class in org.apache.storm.kafka.spout">KafkaSpoutRetryExponentialBackoff</a></code></dd>
</dl>
<hr>
<div class="type-signature"><span class="modifiers">public interface </span><span class="element-name type-name-label">KafkaSpoutRetryService</span><span class="extends-implements">
extends <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/io/Serializable.html" title="class or interface in java.io" class="external-link">Serializable</a></span></div>
<div class="block">Represents the logic that manages the retrial of failed tuples.</div>
</section>
<section class="summary">
<ul class="summary-list">
<!-- ========== METHOD SUMMARY =========== -->
<li>
<section class="method-summary" id="method-summary">
<h2>Method Summary</h2>
<div id="method-summary-table">
<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">All Methods</button><button id="method-summary-table-tab2" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab2', 3)" class="table-tab">Instance Methods</button><button id="method-summary-table-tab3" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab3', 3)" class="table-tab">Abstract Methods</button></div>
<div id="method-summary-table.tabpanel" role="tabpanel">
<div class="summary-table three-column-summary" aria-labelledby="method-summary-table-tab0">
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Method</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Map.html" title="class or interface in java.util" class="external-link">Map</a>&lt;org.apache.kafka.common.TopicPartition,<wbr><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Long.html" title="class or interface in java.lang" class="external-link">Long</a>&gt;</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#earliestRetriableOffsets()" class="member-name-link">earliestRetriableOffsets</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Gets the earliest retriable offsets.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="KafkaSpoutMessageId.html" title="class in org.apache.storm.kafka.spout">KafkaSpoutMessageId</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#getMessageId(org.apache.kafka.common.TopicPartition,long)" class="member-name-link">getMessageId</a><wbr>(org.apache.kafka.common.TopicPartition&nbsp;topicPartition,
long&nbsp;offset)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Gets the <a href="KafkaSpoutMessageId.html" title="class in org.apache.storm.kafka.spout"><code>KafkaSpoutMessageId</code></a> for the record on the given topic partition and offset.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>boolean</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#isReady(org.apache.storm.kafka.spout.KafkaSpoutMessageId)" class="member-name-link">isReady</a><wbr>(<a href="KafkaSpoutMessageId.html" title="class in org.apache.storm.kafka.spout">KafkaSpoutMessageId</a>&nbsp;msgId)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Checks if a specific failed <a href="KafkaSpoutMessageId.html" title="class in org.apache.storm.kafka.spout"><code>KafkaSpoutMessageId</code></a> is ready to be retried,
i.e is scheduled and has retry time that is less than current time.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>boolean</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#isScheduled(org.apache.storm.kafka.spout.KafkaSpoutMessageId)" class="member-name-link">isScheduled</a><wbr>(<a href="KafkaSpoutMessageId.html" title="class in org.apache.storm.kafka.spout">KafkaSpoutMessageId</a>&nbsp;msgId)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Checks if a specific failed <a href="KafkaSpoutMessageId.html" title="class in org.apache.storm.kafka.spout"><code>KafkaSpoutMessageId</code></a> is scheduled to be retried.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>int</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#readyMessageCount()" class="member-name-link">readyMessageCount</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Get the number of messages ready for retry.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>boolean</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#remove(org.apache.storm.kafka.spout.KafkaSpoutMessageId)" class="member-name-link">remove</a><wbr>(<a href="KafkaSpoutMessageId.html" title="class in org.apache.storm.kafka.spout">KafkaSpoutMessageId</a>&nbsp;msgId)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Removes a message from the list of messages scheduled for retrial.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>boolean</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#retainAll(java.util.Collection)" class="member-name-link">retainAll</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Collection.html" title="class or interface in java.util" class="external-link">Collection</a>&lt;org.apache.kafka.common.TopicPartition&gt;&nbsp;topicPartitions)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Retains all the messages whose <code>TopicPartition</code> belongs to the specified <code>Collection&lt;TopicPartition&gt;</code>.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>boolean</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#schedule(org.apache.storm.kafka.spout.KafkaSpoutMessageId)" class="member-name-link">schedule</a><wbr>(<a href="KafkaSpoutMessageId.html" title="class in org.apache.storm.kafka.spout">KafkaSpoutMessageId</a>&nbsp;msgId)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Schedules this <a href="KafkaSpoutMessageId.html" title="class in org.apache.storm.kafka.spout"><code>KafkaSpoutMessageId</code></a> if not yet scheduled, or
updates retry time if it has already been scheduled.</div>
</div>
</div>
</div>
</div>
</section>
</li>
</ul>
</section>
<section class="details">
<ul class="details-list">
<!-- ============ METHOD DETAIL ========== -->
<li>
<section class="method-details" id="method-detail">
<h2>Method Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="schedule(org.apache.storm.kafka.spout.KafkaSpoutMessageId)">
<h3>schedule</h3>
<div class="member-signature"><span class="return-type">boolean</span>&nbsp;<span class="element-name">schedule</span><wbr><span class="parameters">(<a href="KafkaSpoutMessageId.html" title="class in org.apache.storm.kafka.spout">KafkaSpoutMessageId</a>&nbsp;msgId)</span></div>
<div class="block">Schedules this <a href="KafkaSpoutMessageId.html" title="class in org.apache.storm.kafka.spout"><code>KafkaSpoutMessageId</code></a> if not yet scheduled, or
updates retry time if it has already been scheduled. It may also indicate
that the message should not be retried, in which case the message will not be scheduled.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>msgId</code> - message to schedule for retrial</dd>
<dt>Returns:</dt>
<dd>true if the message will be retried, false otherwise</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="remove(org.apache.storm.kafka.spout.KafkaSpoutMessageId)">
<h3>remove</h3>
<div class="member-signature"><span class="return-type">boolean</span>&nbsp;<span class="element-name">remove</span><wbr><span class="parameters">(<a href="KafkaSpoutMessageId.html" title="class in org.apache.storm.kafka.spout">KafkaSpoutMessageId</a>&nbsp;msgId)</span></div>
<div class="block">Removes a message from the list of messages scheduled for retrial.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>msgId</code> - message to remove from retrial</dd>
<dt>Returns:</dt>
<dd>true if the message was scheduled for retrial, false otherwise</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="retainAll(java.util.Collection)">
<h3>retainAll</h3>
<div class="member-signature"><span class="return-type">boolean</span>&nbsp;<span class="element-name">retainAll</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Collection.html" title="class or interface in java.util" class="external-link">Collection</a>&lt;org.apache.kafka.common.TopicPartition&gt;&nbsp;topicPartitions)</span></div>
<div class="block">Retains all the messages whose <code>TopicPartition</code> belongs to the specified <code>Collection&lt;TopicPartition&gt;</code>.
All messages that come from a <code>TopicPartition</code> NOT existing in the collection will be removed.
This method is useful to cleanup state following partition rebalance.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>topicPartitions</code> - Collection of <code>TopicPartition</code> for which to keep messages</dd>
<dt>Returns:</dt>
<dd>true if at least one message was removed, false otherwise</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="earliestRetriableOffsets()">
<h3>earliestRetriableOffsets</h3>
<div class="member-signature"><span class="return-type"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Map.html" title="class or interface in java.util" class="external-link">Map</a>&lt;org.apache.kafka.common.TopicPartition,<wbr><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Long.html" title="class or interface in java.lang" class="external-link">Long</a>&gt;</span>&nbsp;<span class="element-name">earliestRetriableOffsets</span>()</div>
<div class="block">Gets the earliest retriable offsets.</div>
<dl class="notes">
<dt>Returns:</dt>
<dd>The earliest retriable offset for each TopicPartition that has
offsets ready to be retried, i.e. for which a tuple has failed
and has retry time less than current time.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="isReady(org.apache.storm.kafka.spout.KafkaSpoutMessageId)">
<h3>isReady</h3>
<div class="member-signature"><span class="return-type">boolean</span>&nbsp;<span class="element-name">isReady</span><wbr><span class="parameters">(<a href="KafkaSpoutMessageId.html" title="class in org.apache.storm.kafka.spout">KafkaSpoutMessageId</a>&nbsp;msgId)</span></div>
<div class="block">Checks if a specific failed <a href="KafkaSpoutMessageId.html" title="class in org.apache.storm.kafka.spout"><code>KafkaSpoutMessageId</code></a> is ready to be retried,
i.e is scheduled and has retry time that is less than current time.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>msgId</code> - message to check for readiness</dd>
<dt>Returns:</dt>
<dd>true if message is ready to be retried, false otherwise</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="isScheduled(org.apache.storm.kafka.spout.KafkaSpoutMessageId)">
<h3>isScheduled</h3>
<div class="member-signature"><span class="return-type">boolean</span>&nbsp;<span class="element-name">isScheduled</span><wbr><span class="parameters">(<a href="KafkaSpoutMessageId.html" title="class in org.apache.storm.kafka.spout">KafkaSpoutMessageId</a>&nbsp;msgId)</span></div>
<div class="block">Checks if a specific failed <a href="KafkaSpoutMessageId.html" title="class in org.apache.storm.kafka.spout"><code>KafkaSpoutMessageId</code></a> is scheduled to be retried.
The message may or may not be ready to be retried yet.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>msgId</code> - message to check for scheduling status</dd>
<dt>Returns:</dt>
<dd>true if the message is scheduled to be retried, regardless of being or not ready to be retried.
Returns false is this message is not scheduled for retrial</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="readyMessageCount()">
<h3>readyMessageCount</h3>
<div class="member-signature"><span class="return-type">int</span>&nbsp;<span class="element-name">readyMessageCount</span>()</div>
<div class="block">Get the number of messages ready for retry.</div>
<dl class="notes">
<dt>Returns:</dt>
<dd>The number of messages that are ready for retry</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getMessageId(org.apache.kafka.common.TopicPartition,long)">
<h3>getMessageId</h3>
<div class="member-signature"><span class="return-type"><a href="KafkaSpoutMessageId.html" title="class in org.apache.storm.kafka.spout">KafkaSpoutMessageId</a></span>&nbsp;<span class="element-name">getMessageId</span><wbr><span class="parameters">(org.apache.kafka.common.TopicPartition&nbsp;topicPartition,
long&nbsp;offset)</span></div>
<div class="block">Gets the <a href="KafkaSpoutMessageId.html" title="class in org.apache.storm.kafka.spout"><code>KafkaSpoutMessageId</code></a> for the record on the given topic partition and offset.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>topicPartition</code> - The topic partition of the record</dd>
<dd><code>offset</code> - The offset of the record</dd>
<dt>Returns:</dt>
<dd>The id the record was scheduled for retry with,
or a new <a href="KafkaSpoutMessageId.html" title="class in org.apache.storm.kafka.spout"><code>KafkaSpoutMessageId</code></a> if the record was not scheduled for retry.</dd>
</dl>
</section>
</li>
</ul>
</section>
</li>
</ul>
</section>
<!-- ========= END OF CLASS DATA ========= -->
</main>
<footer role="contentinfo">
<hr>
<p class="legal-copy"><small>Copyright &#169; 2023 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</footer>
</div>
</div>
</body>
</html>