blob: ad459df5b6b5c7fa93f189464b45b28d19590c81 [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>
<!-- Generated by javadoc (1.8.0_40) on Thu Jul 20 13:18:22 PDT 2017 -->
<title>TaskIFace (gobblin-runtime 0.11.0 API)</title>
<meta name="date" content="2017-07-20">
<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="TaskIFace (gobblin-runtime 0.11.0 API)";
}
}
catch(err) {
}
//-->
var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</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="../../../gobblin/runtime/task/TaskFactory.html" title="interface in gobblin.runtime.task"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../gobblin/runtime/task/TaskIFaceWrapper.html" title="class in gobblin.runtime.task"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../index.html?gobblin/runtime/task/TaskIFace.html" target="_top">Frames</a></li>
<li><a href="TaskIFace.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>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="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</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">gobblin.runtime.task</div>
<h2 title="Interface TaskIFace" class="title">Interface TaskIFace</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Superinterfaces:</dt>
<dd><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</a></dd>
</dl>
<dl>
<dt>All Known Implementing Classes:</dt>
<dd><a href="../../../gobblin/runtime/task/BaseAbstractTask.html" title="class in gobblin.runtime.task">BaseAbstractTask</a>, <a href="../../../gobblin/runtime/task/FailedTask.html" title="class in gobblin.runtime.task">FailedTask</a>, <a href="../../../gobblin/runtime/mapreduce/MRTask.html" title="class in gobblin.runtime.mapreduce">MRTask</a>, <a href="../../../gobblin/runtime/Task.html" title="class in gobblin.runtime">Task</a>, <a href="../../../gobblin/runtime/task/TaskIFaceWrapper.html" title="class in gobblin.runtime.task">TaskIFaceWrapper</a></dd>
</dl>
<hr>
<br>
<pre><a href="http://linkedin.github.io/gobblin/javadoc/0.11.0/gobblin-api/gobblin/annotation/Alpha.html?is-external=true" title="class or interface in gobblin.annotation">@Alpha</a>
public interface <span class="typeNameLabel">TaskIFace</span>
extends <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</a></pre>
<div class="block">The interface that a task to be run in Gobblin should implement.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../gobblin/runtime/task/TaskIFace.html#awaitShutdown-long-">awaitShutdown</a></span>(long&nbsp;timeoutMillis)</code>
<div class="block">Block until the task finishes shutting down.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../gobblin/runtime/task/TaskIFace.html#commit--">commit</a></span>()</code>
<div class="block">Commit the data to the job staging location.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code><a href="http://linkedin.github.io/gobblin/javadoc/0.11.0/gobblin-api/gobblin/configuration/State.html?is-external=true" title="class or interface in gobblin.configuration">State</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../gobblin/runtime/task/TaskIFace.html#getExecutionMetadata--">getExecutionMetadata</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code><a href="http://linkedin.github.io/gobblin/javadoc/0.11.0/gobblin-api/gobblin/configuration/State.html?is-external=true" title="class or interface in gobblin.configuration">State</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../gobblin/runtime/task/TaskIFace.html#getPersistentState--">getPersistentState</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../gobblin/runtime/task/TaskIFace.html#getProgress--">getProgress</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code><a href="http://linkedin.github.io/gobblin/javadoc/0.11.0/gobblin-api/gobblin/configuration/WorkUnitState.WorkingState.html?is-external=true" title="class or interface in gobblin.configuration">WorkUnitState.WorkingState</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../gobblin/runtime/task/TaskIFace.html#getWorkingState--">getWorkingState</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../gobblin/runtime/task/TaskIFace.html#isSpeculativeExecutionSafe--">isSpeculativeExecutionSafe</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../gobblin/runtime/task/TaskIFace.html#run--">run</a></span>()</code>
<div class="block">Execute the bulk of the work for this task.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../gobblin/runtime/task/TaskIFace.html#shutdown--">shutdown</a></span>()</code>
<div class="block">Prematurely shutdown the task.</div>
</td>
</tr>
</table>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="run--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>run</h4>
<pre>void&nbsp;run()</pre>
<div class="block">Execute the bulk of the work for this task. Due to possible speculative execution, all operations in this method
should be attempt-isolated.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Runnable.html?is-external=true#run--" title="class or interface in java.lang">run</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</a></code></dd>
</dl>
</li>
</ul>
<a name="commit--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>commit</h4>
<pre>void&nbsp;commit()</pre>
<div class="block">Commit the data to the job staging location. This method is guaranteed to be called only once per task, even if
a task is attempted in multiple containers.</div>
</li>
</ul>
<a name="getPersistentState--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPersistentState</h4>
<pre><a href="http://linkedin.github.io/gobblin/javadoc/0.11.0/gobblin-api/gobblin/configuration/State.html?is-external=true" title="class or interface in gobblin.configuration">State</a>&nbsp;getPersistentState()</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The persistent state for this task. This is the state that will be available in the next Gobblin execution.</dd>
</dl>
</li>
</ul>
<a name="getExecutionMetadata--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getExecutionMetadata</h4>
<pre><a href="http://linkedin.github.io/gobblin/javadoc/0.11.0/gobblin-api/gobblin/configuration/State.html?is-external=true" title="class or interface in gobblin.configuration">State</a>&nbsp;getExecutionMetadata()</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The metadata corresponding to this task execution. This metadata will be available to the publisher and may
be viewable by the user, but may not be stored for the next Gobblin execution.</dd>
</dl>
</li>
</ul>
<a name="getWorkingState--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getWorkingState</h4>
<pre><a href="http://linkedin.github.io/gobblin/javadoc/0.11.0/gobblin-api/gobblin/configuration/WorkUnitState.WorkingState.html?is-external=true" title="class or interface in gobblin.configuration">WorkUnitState.WorkingState</a>&nbsp;getWorkingState()</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The current working state of the task.</dd>
</dl>
</li>
</ul>
<a name="shutdown--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>shutdown</h4>
<pre>void&nbsp;shutdown()</pre>
<div class="block">Prematurely shutdown the task.</div>
</li>
</ul>
<a name="awaitShutdown-long-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>awaitShutdown</h4>
<pre>boolean&nbsp;awaitShutdown(long&nbsp;timeoutMillis)
throws <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
<div class="block">Block until the task finishes shutting down. This method is guaranteed to only be called after <a href="../../../gobblin/runtime/task/TaskIFace.html#shutdown--"><code>shutdown()</code></a>
is called.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>timeoutMillis</code> - The method should return after this many millis regardless of the shutdown of the task.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if the task shut down correctly.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></code></dd>
</dl>
</li>
</ul>
<a name="getProgress--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getProgress</h4>
<pre><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getProgress()</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a string describing the progress of this task.</dd>
</dl>
</li>
</ul>
<a name="isSpeculativeExecutionSafe--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>isSpeculativeExecutionSafe</h4>
<pre>boolean&nbsp;isSpeculativeExecutionSafe()</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if the <a href="../../../gobblin/runtime/task/TaskIFace.html#run--"><code>run()</code></a> method is safe to be executed in various executors at the same time.</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="../../../gobblin/runtime/task/TaskFactory.html" title="interface in gobblin.runtime.task"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../gobblin/runtime/task/TaskIFaceWrapper.html" title="class in gobblin.runtime.task"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../index.html?gobblin/runtime/task/TaskIFace.html" target="_top">Frames</a></li>
<li><a href="TaskIFace.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>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="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>