blob: c7d2495012956deb95fd74abb38757102d5b9bd6 [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:17 PDT 2017 -->
<title>AbstractJobLauncher (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="AbstractJobLauncher (gobblin-runtime 0.11.0 API)";
}
}
catch(err) {
}
//-->
var methods = {"i0":10,"i1":10,"i2":6,"i3":10,"i4":10,"i5":10,"i6":42,"i7":6,"i8":10,"i9":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],8:["t4","Concrete Methods"],32:["t6","Deprecated 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>Prev&nbsp;Class</li>
<li><a href="../../gobblin/runtime/AbstractTaskStateTracker.html" title="class in gobblin.runtime"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../index.html?gobblin/runtime/AbstractJobLauncher.html" target="_top">Frames</a></li>
<li><a href="AbstractJobLauncher.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><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&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</div>
<h2 title="Class AbstractJobLauncher" class="title">Class AbstractJobLauncher</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li>gobblin.runtime.AbstractJobLauncher</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><a href="../../gobblin/runtime/JobLauncher.html" title="interface in gobblin.runtime">JobLauncher</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/io/Closeable.html?is-external=true" title="class or interface in java.io">Closeable</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/AutoCloseable.html?is-external=true" title="class or interface in java.lang">AutoCloseable</a></dd>
</dl>
<dl>
<dt>Direct Known Subclasses:</dt>
<dd><a href="../../gobblin/runtime/local/LocalJobLauncher.html" title="class in gobblin.runtime.local">LocalJobLauncher</a>, <a href="../../gobblin/runtime/mapreduce/MRJobLauncher.html" title="class in gobblin.runtime.mapreduce">MRJobLauncher</a></dd>
</dl>
<hr>
<br>
<pre>public abstract class <span class="typeNameLabel">AbstractJobLauncher</span>
extends <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
implements <a href="../../gobblin/runtime/JobLauncher.html" title="interface in gobblin.runtime">JobLauncher</a></pre>
<div class="block">An abstract implementation of <a href="../../gobblin/runtime/JobLauncher.html" title="interface in gobblin.runtime"><code>JobLauncher</code></a> that handles common tasks for launching and running a job.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- =========== FIELD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Field and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../gobblin/runtime/AbstractJobLauncher.html#cancellationExecuted">cancellationExecuted</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../gobblin/runtime/AbstractJobLauncher.html#cancellationExecution">cancellationExecution</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent">ExecutorService</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../gobblin/runtime/AbstractJobLauncher.html#cancellationExecutor">cancellationExecutor</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../gobblin/runtime/AbstractJobLauncher.html#cancellationRequest">cancellationRequest</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../gobblin/runtime/AbstractJobLauncher.html#cancellationRequested">cancellationRequested</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected <a href="http://google.github.io/guava/releases/15.0/api/docs/com/google/common/eventbus/EventBus.html?is-external=true" title="class or interface in com.google.common.eventbus">EventBus</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../gobblin/runtime/AbstractJobLauncher.html#eventBus">eventBus</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected <a href="http://linkedin.github.io/gobblin/javadoc/0.11.0/gobblin-metrics-base/gobblin/metrics/event/EventSubmitter.html?is-external=true" title="class or interface in gobblin.metrics.event">EventSubmitter</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../gobblin/runtime/AbstractJobLauncher.html#eventSubmitter">eventSubmitter</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <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/AbstractJobLauncher.html#JOB_STATE_FILE_NAME">JOB_STATE_FILE_NAME</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected <a href="../../gobblin/runtime/JobContext.html" title="class in gobblin.runtime">JobContext</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../gobblin/runtime/AbstractJobLauncher.html#jobContext">jobContext</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected <a href="http://google.github.io/guava/releases/15.0/api/docs/com/google/common/base/Optional.html?is-external=true" title="class or interface in com.google.common.base">Optional</a>&lt;<a href="../../gobblin/runtime/locks/JobLock.html" title="interface in gobblin.runtime.locks">JobLock</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../gobblin/runtime/AbstractJobLauncher.html#jobLockOptional">jobLockOptional</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/7/docs/api/java/util/Properties.html?is-external=true" title="class or interface in java.util">Properties</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../gobblin/runtime/AbstractJobLauncher.html#jobProps">jobProps</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <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/AbstractJobLauncher.html#MULTI_WORK_UNIT_FILE_EXTENSION">MULTI_WORK_UNIT_FILE_EXTENSION</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected <a href="http://google.github.io/guava/releases/15.0/api/docs/com/google/common/base/Optional.html?is-external=true" title="class or interface in com.google.common.base">Optional</a>&lt;<a href="http://linkedin.github.io/gobblin/javadoc/0.11.0/gobblin-metrics/gobblin/metrics/MetricContext.html?is-external=true" title="class or interface in gobblin.metrics">MetricContext</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../gobblin/runtime/AbstractJobLauncher.html#runtimeMetricContext">runtimeMetricContext</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <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/AbstractJobLauncher.html#TASK_STATE_STORE_TABLE_SUFFIX">TASK_STATE_STORE_TABLE_SUFFIX</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <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/AbstractJobLauncher.html#WORK_UNIT_FILE_EXTENSION">WORK_UNIT_FILE_EXTENSION</a></span></code>&nbsp;</td>
</tr>
</table>
</li>
</ul>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../gobblin/runtime/AbstractJobLauncher.html#AbstractJobLauncher-java.util.Properties-java.util.List-">AbstractJobLauncher</a></span>(<a href="https://docs.oracle.com/javase/7/docs/api/java/util/Properties.html?is-external=true" title="class or interface in java.util">Properties</a>&nbsp;jobProps,
<a href="https://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;? extends <a href="http://linkedin.github.io/gobblin/javadoc/0.11.0/gobblin-metrics/gobblin/metrics/Tag.html?is-external=true" title="class or interface in gobblin.metrics">Tag</a>&lt;?&gt;&gt;&nbsp;metadataTags)</code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../gobblin/runtime/AbstractJobLauncher.html#AbstractJobLauncher-java.util.Properties-java.util.List-gobblin.broker.iface.SharedResourcesBroker-">AbstractJobLauncher</a></span>(<a href="https://docs.oracle.com/javase/7/docs/api/java/util/Properties.html?is-external=true" title="class or interface in java.util">Properties</a>&nbsp;jobProps,
<a href="https://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;? extends <a href="http://linkedin.github.io/gobblin/javadoc/0.11.0/gobblin-metrics/gobblin/metrics/Tag.html?is-external=true" title="class or interface in gobblin.metrics">Tag</a>&lt;?&gt;&gt;&nbsp;metadataTags,
<a href="http://linkedin.github.io/gobblin/javadoc/0.11.0/gobblin-api/gobblin/broker/iface/SharedResourcesBroker.html?is-external=true" title="class or interface in gobblin.broker.iface">SharedResourcesBroker</a>&lt;<a href="http://linkedin.github.io/gobblin/javadoc/0.11.0/gobblin-api/gobblin/broker/gobblin_scopes/GobblinScopeTypes.html?is-external=true" title="class or interface in gobblin.broker.gobblin_scopes">GobblinScopeTypes</a>&gt;&nbsp;instanceBroker)</code>&nbsp;</td>
</tr>
</table>
</li>
</ul>
<!-- ========== 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><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t6" class="tableTab"><span><a href="javascript:show(32);">Deprecated 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>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../gobblin/runtime/AbstractJobLauncher.html#cancelJob-gobblin.runtime.listeners.JobListener-">cancelJob</a></span>(<a href="../../gobblin/runtime/listeners/JobListener.html" title="interface in gobblin.runtime.listeners">JobListener</a>&nbsp;jobListener)</code>
<div class="block">A default implementation of <a href="../../gobblin/runtime/JobLauncher.html#cancelJob-gobblin.runtime.listeners.JobListener-"><code>JobLauncher.cancelJob(JobListener)</code></a>.</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/AbstractJobLauncher.html#close--">close</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>protected abstract void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../gobblin/runtime/AbstractJobLauncher.html#executeCancellation--">executeCancellation</a></span>()</code>
<div class="block">Execute the job cancellation.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>protected <a href="../../gobblin/runtime/locks/JobLock.html" title="interface in gobblin.runtime.locks">JobLock</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../gobblin/runtime/AbstractJobLauncher.html#getJobLock-java.util.Properties-gobblin.runtime.locks.JobLockEventListener-">getJobLock</a></span>(<a href="https://docs.oracle.com/javase/7/docs/api/java/util/Properties.html?is-external=true" title="class or interface in java.util">Properties</a>&nbsp;properties,
<a href="../../gobblin/runtime/locks/JobLockEventListener.html" title="class in gobblin.runtime.locks">JobLockEventListener</a>&nbsp;jobLockEventListener)</code>
<div class="block">Get a <a href="../../gobblin/runtime/locks/JobLock.html" title="interface in gobblin.runtime.locks"><code>JobLock</code></a> to be used for the job.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../gobblin/runtime/AbstractJobLauncher.html#launchJob-gobblin.runtime.listeners.JobListener-">launchJob</a></span>(<a href="../../gobblin/runtime/listeners/JobListener.html" title="interface in gobblin.runtime.listeners">JobListener</a>&nbsp;jobListener)</code>
<div class="block">Launch a Gobblin job.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../gobblin/runtime/AbstractJobLauncher.html#postProcessJobState-gobblin.runtime.JobState-">postProcessJobState</a></span>(<a href="../../gobblin/runtime/JobState.html" title="class in gobblin.runtime">JobState</a>&nbsp;jobState)</code>
<div class="block">Subclasses can override this method to do whatever processing on the <a href="../../gobblin/runtime/JobState.html" title="class in gobblin.runtime"><code>JobState</code></a> and its
associated <a href="../../gobblin/runtime/TaskState.html" title="class in gobblin.runtime"><code>TaskState</code></a>s, e.g., aggregate task-level metrics into job-level metrics.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../gobblin/runtime/AbstractJobLauncher.html#postProcessTaskStates-java.util.List-">postProcessTaskStates</a></span>(<a href="https://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../gobblin/runtime/TaskState.html" title="class in gobblin.runtime">TaskState</a>&gt;&nbsp;taskStates)</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
<div class="block"><span class="deprecationComment">Use {@link #postProcessJobState(JobState)</span></div>
</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>protected abstract void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../gobblin/runtime/AbstractJobLauncher.html#runWorkUnits-java.util.List-">runWorkUnits</a></span>(<a href="https://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="http://linkedin.github.io/gobblin/javadoc/0.11.0/gobblin-api/gobblin/source/workunit/WorkUnit.html?is-external=true" title="class or interface in gobblin.source.workunit">WorkUnit</a>&gt;&nbsp;workUnits)</code>
<div class="block">Run the given job.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../gobblin/runtime/AbstractJobLauncher.html#runWorkUnitStream-gobblin.source.workunit.WorkUnitStream-">runWorkUnitStream</a></span>(<a href="http://linkedin.github.io/gobblin/javadoc/0.11.0/gobblin-api/gobblin/source/workunit/WorkUnitStream.html?is-external=true" title="class or interface in gobblin.source.workunit">WorkUnitStream</a>&nbsp;workUnitStream)</code>
<div class="block">Run the given job.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../gobblin/runtime/AbstractJobLauncher.html#startCancellationExecutor--">startCancellationExecutor</a></span>()</code>
<div class="block">Start the scheduled executor for executing job cancellation.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.detail">
<!-- -->
</a>
<h3>Field Detail</h3>
<a name="TASK_STATE_STORE_TABLE_SUFFIX">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>TASK_STATE_STORE_TABLE_SUFFIX</h4>
<pre>public static final&nbsp;<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> TASK_STATE_STORE_TABLE_SUFFIX</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../constant-values.html#gobblin.runtime.AbstractJobLauncher.TASK_STATE_STORE_TABLE_SUFFIX">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="JOB_STATE_FILE_NAME">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>JOB_STATE_FILE_NAME</h4>
<pre>public static final&nbsp;<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> JOB_STATE_FILE_NAME</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../constant-values.html#gobblin.runtime.AbstractJobLauncher.JOB_STATE_FILE_NAME">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="WORK_UNIT_FILE_EXTENSION">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>WORK_UNIT_FILE_EXTENSION</h4>
<pre>public static final&nbsp;<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> WORK_UNIT_FILE_EXTENSION</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../constant-values.html#gobblin.runtime.AbstractJobLauncher.WORK_UNIT_FILE_EXTENSION">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="MULTI_WORK_UNIT_FILE_EXTENSION">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>MULTI_WORK_UNIT_FILE_EXTENSION</h4>
<pre>public static final&nbsp;<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> MULTI_WORK_UNIT_FILE_EXTENSION</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../constant-values.html#gobblin.runtime.AbstractJobLauncher.MULTI_WORK_UNIT_FILE_EXTENSION">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="jobProps">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>jobProps</h4>
<pre>protected final&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/util/Properties.html?is-external=true" title="class or interface in java.util">Properties</a> jobProps</pre>
</li>
</ul>
<a name="jobContext">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>jobContext</h4>
<pre>protected final&nbsp;<a href="../../gobblin/runtime/JobContext.html" title="class in gobblin.runtime">JobContext</a> jobContext</pre>
</li>
</ul>
<a name="jobLockOptional">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>jobLockOptional</h4>
<pre>protected&nbsp;<a href="http://google.github.io/guava/releases/15.0/api/docs/com/google/common/base/Optional.html?is-external=true" title="class or interface in com.google.common.base">Optional</a>&lt;<a href="../../gobblin/runtime/locks/JobLock.html" title="interface in gobblin.runtime.locks">JobLock</a>&gt; jobLockOptional</pre>
</li>
</ul>
<a name="cancellationRequest">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>cancellationRequest</h4>
<pre>protected final&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> cancellationRequest</pre>
</li>
</ul>
<a name="cancellationRequested">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>cancellationRequested</h4>
<pre>protected volatile&nbsp;boolean cancellationRequested</pre>
</li>
</ul>
<a name="cancellationExecution">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>cancellationExecution</h4>
<pre>protected final&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> cancellationExecution</pre>
</li>
</ul>
<a name="cancellationExecuted">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>cancellationExecuted</h4>
<pre>protected volatile&nbsp;boolean cancellationExecuted</pre>
</li>
</ul>
<a name="cancellationExecutor">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>cancellationExecutor</h4>
<pre>protected final&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent">ExecutorService</a> cancellationExecutor</pre>
</li>
</ul>
<a name="runtimeMetricContext">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>runtimeMetricContext</h4>
<pre>protected final&nbsp;<a href="http://google.github.io/guava/releases/15.0/api/docs/com/google/common/base/Optional.html?is-external=true" title="class or interface in com.google.common.base">Optional</a>&lt;<a href="http://linkedin.github.io/gobblin/javadoc/0.11.0/gobblin-metrics/gobblin/metrics/MetricContext.html?is-external=true" title="class or interface in gobblin.metrics">MetricContext</a>&gt; runtimeMetricContext</pre>
</li>
</ul>
<a name="eventSubmitter">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>eventSubmitter</h4>
<pre>protected final&nbsp;<a href="http://linkedin.github.io/gobblin/javadoc/0.11.0/gobblin-metrics-base/gobblin/metrics/event/EventSubmitter.html?is-external=true" title="class or interface in gobblin.metrics.event">EventSubmitter</a> eventSubmitter</pre>
</li>
</ul>
<a name="eventBus">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>eventBus</h4>
<pre>protected final&nbsp;<a href="http://google.github.io/guava/releases/15.0/api/docs/com/google/common/eventbus/EventBus.html?is-external=true" title="class or interface in com.google.common.eventbus">EventBus</a> eventBus</pre>
</li>
</ul>
</li>
</ul>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="AbstractJobLauncher-java.util.Properties-java.util.List-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>AbstractJobLauncher</h4>
<pre>public&nbsp;AbstractJobLauncher(<a href="https://docs.oracle.com/javase/7/docs/api/java/util/Properties.html?is-external=true" title="class or interface in java.util">Properties</a>&nbsp;jobProps,
<a href="https://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;? extends <a href="http://linkedin.github.io/gobblin/javadoc/0.11.0/gobblin-metrics/gobblin/metrics/Tag.html?is-external=true" title="class or interface in gobblin.metrics">Tag</a>&lt;?&gt;&gt;&nbsp;metadataTags)
throws <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
</dl>
</li>
</ul>
<a name="AbstractJobLauncher-java.util.Properties-java.util.List-gobblin.broker.iface.SharedResourcesBroker-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>AbstractJobLauncher</h4>
<pre>public&nbsp;AbstractJobLauncher(<a href="https://docs.oracle.com/javase/7/docs/api/java/util/Properties.html?is-external=true" title="class or interface in java.util">Properties</a>&nbsp;jobProps,
<a href="https://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;? extends <a href="http://linkedin.github.io/gobblin/javadoc/0.11.0/gobblin-metrics/gobblin/metrics/Tag.html?is-external=true" title="class or interface in gobblin.metrics">Tag</a>&lt;?&gt;&gt;&nbsp;metadataTags,
<a href="https://docs.oracle.com/javase/7/docs/api/javax/annotation/Nullable.html?is-external=true" title="class or interface in javax.annotation">@Nullable</a>
<a href="http://linkedin.github.io/gobblin/javadoc/0.11.0/gobblin-api/gobblin/broker/iface/SharedResourcesBroker.html?is-external=true" title="class or interface in gobblin.broker.iface">SharedResourcesBroker</a>&lt;<a href="http://linkedin.github.io/gobblin/javadoc/0.11.0/gobblin-api/gobblin/broker/gobblin_scopes/GobblinScopeTypes.html?is-external=true" title="class or interface in gobblin.broker.gobblin_scopes">GobblinScopeTypes</a>&gt;&nbsp;instanceBroker)
throws <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
</dl>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="cancelJob-gobblin.runtime.listeners.JobListener-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>cancelJob</h4>
<pre>public&nbsp;void&nbsp;cancelJob(<a href="../../gobblin/runtime/listeners/JobListener.html" title="interface in gobblin.runtime.listeners">JobListener</a>&nbsp;jobListener)
throws <a href="../../gobblin/runtime/JobException.html" title="class in gobblin.runtime">JobException</a></pre>
<div class="block">A default implementation of <a href="../../gobblin/runtime/JobLauncher.html#cancelJob-gobblin.runtime.listeners.JobListener-"><code>JobLauncher.cancelJob(JobListener)</code></a>.
<p>
This implementation relies on two conditional variables: one for the condition that a cancellation
is requested, and the other for the condition that the cancellation is executed. Upon entrance, the
method notifies the cancellation executor started by <a href="../../gobblin/runtime/AbstractJobLauncher.html#startCancellationExecutor--"><code>startCancellationExecutor()</code></a> on the
first conditional variable to indicate that a cancellation has been requested so the executor is
unblocked. Then it waits on the second conditional variable for the cancellation to be executed.
</p>
<p>
The actual execution of the cancellation is handled by the cancellation executor started by the
method <a href="../../gobblin/runtime/AbstractJobLauncher.html#startCancellationExecutor--"><code>startCancellationExecutor()</code></a> that uses the <a href="../../gobblin/runtime/AbstractJobLauncher.html#executeCancellation--"><code>executeCancellation()</code></a> method
to execute the cancellation.
</p>
Cancel a Gobblin job.
<p>
This method is synchronous, i.e., the caller will be blocked until the cancellation is executed.
The method <a href="../../gobblin/runtime/listeners/JobListener.html#onJobCancellation-gobblin.runtime.JobContext-"><code>JobListener.onJobCancellation(JobContext)</code></a> of the given <a href="../../gobblin/runtime/listeners/JobListener.html" title="interface in gobblin.runtime.listeners"><code>JobListener</code></a> will
be called at the end if the caller is not interrupted while being blocked. If a cancellation has
already been requested, however, this method will return immediately.
</p></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../gobblin/runtime/JobLauncher.html#cancelJob-gobblin.runtime.listeners.JobListener-">cancelJob</a></code>&nbsp;in interface&nbsp;<code><a href="../../gobblin/runtime/JobLauncher.html" title="interface in gobblin.runtime">JobLauncher</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>jobListener</code> - <a href="../../gobblin/runtime/listeners/JobListener.html" title="interface in gobblin.runtime.listeners"><code>JobListener</code></a> instance on which <a href="../../gobblin/runtime/listeners/JobListener.html#onJobCancellation-gobblin.runtime.JobContext-"><code>JobListener.onJobCancellation(JobContext)</code></a>
is called at the end of this method if it is not <code>null</code></dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../gobblin/runtime/JobException.html" title="class in gobblin.runtime">JobException</a></code> - if there is anything wrong cancelling the job</dd>
</dl>
</li>
</ul>
<a name="launchJob-gobblin.runtime.listeners.JobListener-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>launchJob</h4>
<pre>public&nbsp;void&nbsp;launchJob(<a href="../../gobblin/runtime/listeners/JobListener.html" title="interface in gobblin.runtime.listeners">JobListener</a>&nbsp;jobListener)
throws <a href="../../gobblin/runtime/JobException.html" title="class in gobblin.runtime">JobException</a></pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../gobblin/runtime/JobLauncher.html#launchJob-gobblin.runtime.listeners.JobListener-">JobLauncher</a></code></span></div>
<div class="block">Launch a Gobblin job.
<p>
This method is synchronous, i.e., the caller will be blocked until the job finishes. The method
<a href="../../gobblin/runtime/listeners/JobListener.html#onJobCompletion-gobblin.runtime.JobContext-"><code>JobListener.onJobCompletion(JobContext)</code></a> of the given <a href="../../gobblin/runtime/listeners/JobListener.html" title="interface in gobblin.runtime.listeners"><code>JobListener</code></a> will be called at
the end if no uncaught exceptions are thrown before the method gets called.
</p></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../gobblin/runtime/JobLauncher.html#launchJob-gobblin.runtime.listeners.JobListener-">launchJob</a></code>&nbsp;in interface&nbsp;<code><a href="../../gobblin/runtime/JobLauncher.html" title="interface in gobblin.runtime">JobLauncher</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>jobListener</code> - a <a href="../../gobblin/runtime/listeners/JobListener.html" title="interface in gobblin.runtime.listeners"><code>JobListener</code></a> instance on which <a href="../../gobblin/runtime/listeners/JobListener.html#onJobCompletion-gobblin.runtime.JobContext-"><code>JobListener.onJobCompletion(JobContext)</code></a>
is called at the end of this method if it is not <code>null</code></dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../gobblin/runtime/JobException.html" title="class in gobblin.runtime">JobException</a></code> - if there is anything wrong launching and running the job</dd>
</dl>
</li>
</ul>
<a name="postProcessTaskStates-java.util.List-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>postProcessTaskStates</h4>
<pre><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
protected&nbsp;void&nbsp;postProcessTaskStates(<a href="https://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../gobblin/runtime/TaskState.html" title="class in gobblin.runtime">TaskState</a>&gt;&nbsp;taskStates)</pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">Use {@link #postProcessJobState(JobState)</span></div>
<div class="block">Subclasses can override this method to do whatever processing on the <a href="../../gobblin/runtime/TaskState.html" title="class in gobblin.runtime"><code>TaskState</code></a>s,
e.g., aggregate task-level metrics into job-level metrics.</div>
</li>
</ul>
<a name="postProcessJobState-gobblin.runtime.JobState-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>postProcessJobState</h4>
<pre>protected&nbsp;void&nbsp;postProcessJobState(<a href="../../gobblin/runtime/JobState.html" title="class in gobblin.runtime">JobState</a>&nbsp;jobState)</pre>
<div class="block">Subclasses can override this method to do whatever processing on the <a href="../../gobblin/runtime/JobState.html" title="class in gobblin.runtime"><code>JobState</code></a> and its
associated <a href="../../gobblin/runtime/TaskState.html" title="class in gobblin.runtime"><code>TaskState</code></a>s, e.g., aggregate task-level metrics into job-level metrics.</div>
</li>
</ul>
<a name="close--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>close</h4>
<pre>public&nbsp;void&nbsp;close()
throws <a href="https://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/7/docs/api/java/io/Closeable.html?is-external=true#close--" title="class or interface in java.io">close</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.oracle.com/javase/7/docs/api/java/io/Closeable.html?is-external=true" title="class or interface in java.io">Closeable</a></code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/AutoCloseable.html?is-external=true#close--" title="class or interface in java.lang">close</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/AutoCloseable.html?is-external=true" title="class or interface in java.lang">AutoCloseable</a></code></dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
</dl>
</li>
</ul>
<a name="runWorkUnits-java.util.List-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>runWorkUnits</h4>
<pre>protected abstract&nbsp;void&nbsp;runWorkUnits(<a href="https://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="http://linkedin.github.io/gobblin/javadoc/0.11.0/gobblin-api/gobblin/source/workunit/WorkUnit.html?is-external=true" title="class or interface in gobblin.source.workunit">WorkUnit</a>&gt;&nbsp;workUnits)
throws <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
<div class="block">Run the given job.
<p>
The contract between <a href="../../gobblin/runtime/AbstractJobLauncher.html#launchJob-gobblin.runtime.listeners.JobListener-"><code>launchJob(JobListener)</code></a> and this method is this method
is responsible for for setting <a href="../../gobblin/runtime/JobState.RunningState.html" title="enum in gobblin.runtime"><code>JobState.RunningState</code></a> properly and upon returning from this method
(either normally or due to exceptions) whatever <a href="../../gobblin/runtime/JobState.RunningState.html" title="enum in gobblin.runtime"><code>JobState.RunningState</code></a> is set in this method is
used to determine if the job has finished.
</p></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>workUnits</code> - List of <a href="http://linkedin.github.io/gobblin/javadoc/0.11.0/gobblin-api/gobblin/source/workunit/WorkUnit.html?is-external=true" title="class or interface in gobblin.source.workunit"><code>WorkUnit</code></a>s of the job</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
</dl>
</li>
</ul>
<a name="runWorkUnitStream-gobblin.source.workunit.WorkUnitStream-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>runWorkUnitStream</h4>
<pre>protected&nbsp;void&nbsp;runWorkUnitStream(<a href="http://linkedin.github.io/gobblin/javadoc/0.11.0/gobblin-api/gobblin/source/workunit/WorkUnitStream.html?is-external=true" title="class or interface in gobblin.source.workunit">WorkUnitStream</a>&nbsp;workUnitStream)
throws <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
<div class="block">Run the given job.
<p>
The contract between <a href="../../gobblin/runtime/AbstractJobLauncher.html#launchJob-gobblin.runtime.listeners.JobListener-"><code>launchJob(JobListener)</code></a> and this method is this method
is responsible for for setting <a href="../../gobblin/runtime/JobState.RunningState.html" title="enum in gobblin.runtime"><code>JobState.RunningState</code></a> properly and upon returning from this method
(either normally or due to exceptions) whatever <a href="../../gobblin/runtime/JobState.RunningState.html" title="enum in gobblin.runtime"><code>JobState.RunningState</code></a> is set in this method is
used to determine if the job has finished.
</p></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>workUnitStream</code> - stream of <a href="http://linkedin.github.io/gobblin/javadoc/0.11.0/gobblin-api/gobblin/source/workunit/WorkUnit.html?is-external=true" title="class or interface in gobblin.source.workunit"><code>WorkUnit</code></a>s of the job</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
</dl>
</li>
</ul>
<a name="getJobLock-java.util.Properties-gobblin.runtime.locks.JobLockEventListener-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getJobLock</h4>
<pre>protected&nbsp;<a href="../../gobblin/runtime/locks/JobLock.html" title="interface in gobblin.runtime.locks">JobLock</a>&nbsp;getJobLock(<a href="https://docs.oracle.com/javase/7/docs/api/java/util/Properties.html?is-external=true" title="class or interface in java.util">Properties</a>&nbsp;properties,
<a href="../../gobblin/runtime/locks/JobLockEventListener.html" title="class in gobblin.runtime.locks">JobLockEventListener</a>&nbsp;jobLockEventListener)
throws <a href="../../gobblin/runtime/locks/JobLockException.html" title="class in gobblin.runtime.locks">JobLockException</a></pre>
<div class="block">Get a <a href="../../gobblin/runtime/locks/JobLock.html" title="interface in gobblin.runtime.locks"><code>JobLock</code></a> to be used for the job.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>properties</code> - the job properties</dd>
<dd><code>jobLockEventListener</code> - the listener for lock events.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><a href="../../gobblin/runtime/locks/JobLock.html" title="interface in gobblin.runtime.locks"><code>JobLock</code></a> to be used for the job</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../gobblin/runtime/locks/JobLockException.html" title="class in gobblin.runtime.locks">JobLockException</a></code> - throw when the <a href="../../gobblin/runtime/locks/JobLock.html" title="interface in gobblin.runtime.locks"><code>JobLock</code></a> fails to initialize</dd>
</dl>
</li>
</ul>
<a name="executeCancellation--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>executeCancellation</h4>
<pre>protected abstract&nbsp;void&nbsp;executeCancellation()</pre>
<div class="block">Execute the job cancellation.</div>
</li>
</ul>
<a name="startCancellationExecutor--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>startCancellationExecutor</h4>
<pre>protected&nbsp;void&nbsp;startCancellationExecutor()</pre>
<div class="block">Start the scheduled executor for executing job cancellation.
<p>
The executor, upon started, waits on the condition variable indicating a cancellation is requested,
i.e., it waits for a cancellation request to arrive. If a cancellation is requested, the executor
is unblocked and calls <a href="../../gobblin/runtime/AbstractJobLauncher.html#executeCancellation--"><code>executeCancellation()</code></a> to execute the cancellation. Upon completion
of the cancellation execution, the executor notifies the caller that requested the cancellation on
the conditional variable indicating the cancellation has been executed so the caller is unblocked.
Upon successful execution of the cancellation, it sets the job state to
<a href="../../gobblin/runtime/JobState.RunningState.html#CANCELLED"><code>JobState.RunningState.CANCELLED</code></a>.
</p></div>
</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>Prev&nbsp;Class</li>
<li><a href="../../gobblin/runtime/AbstractTaskStateTracker.html" title="class in gobblin.runtime"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../index.html?gobblin/runtime/AbstractJobLauncher.html" target="_top">Frames</a></li>
<li><a href="AbstractJobLauncher.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><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&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>