webgme-engine
Version:
WebGME server and Client API without a GUI
1,296 lines (388 loc) • 21.9 kB
HTML
<html lang="en">
<head>
<meta charset="utf-8">
<title>JSDoc: Class: ExecutorClient</title>
<script src="scripts/prettify/prettify.js"> </script>
<script src="scripts/prettify/lang-css.js"> </script>
<!--[if lt IE 9]>
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
<link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
</head>
<body>
<div id="main">
<h1 class="page-title">Class: ExecutorClient</h1>
<section>
<header>
<h2><span class="attribs"><span class="type-signature"></span></span>ExecutorClient<span class="signature">(parameters)</span><span class="type-signature"></span></h2>
</header>
<article>
<div class="container-overview">
<h4 class="name" id="ExecutorClient"><span class="type-signature"></span>new ExecutorClient<span class="signature">(parameters)</span><span class="type-signature"></span></h4>
<div class="description">
<p>Client for creating, monitoring, and receiving output executor jobs.
This client is used by the Executor Workers and some of the API calls are not
meant to be used by "end users".</p>
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>parameters</code></td>
<td class="type">
<span class="param-type"><a href="global.html#object">object</a></span>
</td>
<td class="description last">
<h6>Properties</h6>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>logger</code></td>
<td class="type">
<span class="param-type"><a href="global.html#object">object</a></span>
</td>
<td class="description last"></td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="common_executor_ExecutorClient.js.html">common/executor/ExecutorClient.js</a>, <a href="common_executor_ExecutorClient.js.html#line26">line 26</a>
</li></ul></dd>
</dl>
</div>
<h3 class="subsection-title">Methods</h3>
<h4 class="name" id="createJob"><span class="type-signature"></span>createJob<span class="signature">(jobInfo, callback<span class="signature-attributes">opt</span>)</span><span class="type-signature"> → {<a href="external-Promise.html">external:Promise</a>}</span></h4>
<div class="description">
<p>Creates a new job.</p>
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Attributes</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>jobInfo</code></td>
<td class="type">
<span class="param-type"><a href="global.html#object">object</a></span>
</td>
<td class="attributes">
</td>
<td class="description last"><p>initial information about the job must contain the hash.</p>
<h6>Properties</h6>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>hash</code></td>
<td class="type">
<span class="param-type"><a href="global.html#object">object</a></span>
</td>
<td class="description last"><p>a unique id for the job (e.g. the hash of the artifact
containing the executor_config.json).</p></td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td class="name"><code>callback</code></td>
<td class="type">
<span class="param-type"><a href="global.html#function">function</a></span>
</td>
<td class="attributes">
<optional><br>
</td>
<td class="description last"><p>if provided no promise will be returned.</p></td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="common_executor_ExecutorClient.js.html">common/executor/ExecutorClient.js</a>, <a href="common_executor_ExecutorClient.js.html#line144">line 144</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
<p>On success the promise will be resolved with <a href="JobInfo.html">JobInfo</a> <b>result</b>.<br>
On error the promise will be rejected with <a href="global.html#Error">Error</a> <b>error</b>.</p>
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type"><a href="external-Promise.html">external:Promise</a></span>
</dd>
</dl>
<h4 class="name" id="getInfo"><span class="type-signature"></span>getInfo<span class="signature">(hash, callback<span class="signature-attributes">opt</span>)</span><span class="type-signature"> → {<a href="external-Promise.html">external:Promise</a>}</span></h4>
<div class="description">
<p>Retrieves the current state of the job in form of a <a href="JobInfo.html">JobInfo</a></p>
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Attributes</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>hash</code></td>
<td class="type">
<span class="param-type"><a href="global.html#string">string</a></span>
</td>
<td class="attributes">
</td>
<td class="description last"><p>unique id for the job (e.g. the hash of the artifact containing the executor_config.json).</p></td>
</tr>
<tr>
<td class="name"><code>callback</code></td>
<td class="type">
<span class="param-type"><a href="global.html#function">function</a></span>
</td>
<td class="attributes">
<optional><br>
</td>
<td class="description last"><p>if provided no promise will be returned.</p></td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="common_executor_ExecutorClient.js.html">common/executor/ExecutorClient.js</a>, <a href="common_executor_ExecutorClient.js.html#line215">line 215</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
<p>On success the promise will be resolved with <a href="JobInfo.html">JobInfo</a> <b>jobInfo</b>.<br>
On error the promise will be rejected with <a href="global.html#Error">Error</a> <b>error</b>.</p>
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type"><a href="external-Promise.html">external:Promise</a></span>
</dd>
</dl>
<h4 class="name" id="getNewExecutorConfig"><span class="type-signature"></span>getNewExecutorConfig<span class="signature">(cmd, args<span class="signature-attributes">opt</span>, outputInterval<span class="signature-attributes">opt</span>, outputSegmentSize<span class="signature-attributes">opt</span>)</span><span class="type-signature"> → {<a href="global.html#object">object</a>}</span></h4>
<div class="description">
<p>Creates a new configuration object for the job execution.</p>
<p>To make the worker post output either the outputInterval and/or outputSegmentSize must be specified.
<br> - If both are negative (or falsy) no output will be given.
<br> - When both are specified a timeout will be set at start (and after each posted output).
If the number of lines exceeds outputSegmentSize during that timeout, the output will be posted and a
new timeout will be triggered.
<br>
N.B. even though a short outputInterval is set, the worker won't post new output until the responses from
previous posts have returned. Before the job returns with a "completed" status code, all queued outputs will be
posted (and the responses will be ensured to have returned).</p>
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Attributes</th>
<th>Default</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>cmd</code></td>
<td class="type">
<span class="param-type"><a href="global.html#string">string</a></span>
</td>
<td class="attributes">
</td>
<td class="default">
</td>
<td class="description last"><p>command to execute.</p></td>
</tr>
<tr>
<td class="name"><code>args</code></td>
<td class="type">
<span class="param-type"><a href="global.html#Array">Array</a>.<<a href="global.html#string">string</a>></span>
</td>
<td class="attributes">
<optional><br>
</td>
<td class="default">
</td>
<td class="description last"><p>command arguments.</p></td>
</tr>
<tr>
<td class="name"><code>outputInterval</code></td>
<td class="type">
<span class="param-type"><a href="global.html#number">number</a></span>
</td>
<td class="attributes">
<optional><br>
</td>
<td class="default">
-1
</td>
<td class="description last"><p>max time [ms] between (non-empty) output posts from worker.</p></td>
</tr>
<tr>
<td class="name"><code>outputSegmentSize</code></td>
<td class="type">
<span class="param-type"><a href="global.html#number">number</a></span>
</td>
<td class="attributes">
<optional><br>
</td>
<td class="default">
-1
</td>
<td class="description last"><p>number of lines before new output is posted from worker. (N.B. posted
segments can still contain more number of lines).</p></td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="common_executor_ExecutorClient.js.html">common/executor/ExecutorClient.js</a>, <a href="common_executor_ExecutorClient.js.html#line106">line 106</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type"><a href="global.html#object">object</a></span>
</dd>
</dl>
<h4 class="name" id="getOutput"><span class="type-signature"></span>getOutput<span class="signature">(hash, start<span class="signature-attributes">opt</span>, end<span class="signature-attributes">opt</span>, callback<span class="signature-attributes">opt</span>)</span><span class="type-signature"> → {<a href="external-Promise.html">external:Promise</a>}</span></h4>
<div class="description">
<p>Retrieves the output associated with jobHash, to limit the output pass start and/or end.
The outputs are identified by 0, 1, 2, ...</p>
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Attributes</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>hash</code></td>
<td class="type">
<span class="param-type"><a href="global.html#string">string</a></span>
</td>
<td class="attributes">
</td>
<td class="description last"><p>hash of job related to output.</p></td>
</tr>
<tr>
<td class="name"><code>start</code></td>
<td class="type">
<span class="param-type"><a href="global.html#number">number</a></span>
</td>
<td class="attributes">
<optional><br>
</td>
<td class="description last"><p>number/id of the output segment to start from (inclusive).</p></td>
</tr>
<tr>
<td class="name"><code>end</code></td>
<td class="type">
<span class="param-type"><a href="global.html#number">number</a></span>
</td>
<td class="attributes">
<optional><br>
</td>
<td class="description last"><p>number/id of segment to end at (exclusive).</p></td>
</tr>
<tr>
<td class="name"><code>callback</code></td>
<td class="type">
<span class="param-type"><a href="global.html#function">function</a></span>
</td>
<td class="attributes">
<optional><br>
</td>
<td class="description last"><p>if provided no promise will be returned.</p></td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="common_executor_ExecutorClient.js.html">common/executor/ExecutorClient.js</a>, <a href="common_executor_ExecutorClient.js.html#line292">line 292</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
<p>On success the promise will be resolved with <a href="OutputInfo.html">OutputInfo</a> <b>result</b>.<br>
On error the promise will be rejected with <a href="global.html#Error">Error</a> <b>error</b>.</p>
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type"><a href="external-Promise.html">external:Promise</a></span>
</dd>
</dl>
</article>
</section>
</div>
<nav>
<h2><a href="index.html">Home</a></h2><h3>Modules</h3><ul><li><a href="Server_GMEAuth.html">Server:GMEAuth</a></li><li><a href="Server_SafeStorage.html">Server:SafeStorage</a></li><li><a href="Server_UserProject.html">Server:UserProject</a></li><li><a href="module-Core.html">Core</a></li><li><a href="module-Storage.html">Storage</a></li><li><a href="module-crosscuts.html">crosscuts</a></li><li><a href="module-serialization.html">serialization</a></li></ul><h3>Externals</h3><ul><li><a href="external-Promise.html">Promise</a></li></ul><h3>Classes</h3><ul><li><a href="AddOnBase.html">AddOnBase</a></li><li><a href="AddOnUpdateResult.html">AddOnUpdateResult</a></li><li><a href="Artifact.html">Artifact</a></li><li><a href="BlobClient.html">BlobClient</a></li><li><a href="BlobMetadata.html">BlobMetadata</a></li><li><a href="BlobRunPluginClient.html">BlobRunPluginClient</a></li><li><a href="Client.html">Client</a></li><li><a href="Core.html">Core</a></li><li><a href="ExecutorClient.html">ExecutorClient</a></li><li><a href="GMENode.html">GMENode</a></li><li><a href="GmeLogger.html">GmeLogger</a></li><li><a href="InterPluginResult.html">InterPluginResult</a></li><li><a href="JobInfo.html">JobInfo</a></li><li><a href="OutputInfo.html">OutputInfo</a></li><li><a href="PluginBase.html">PluginBase</a></li><li><a href="PluginConfig.html">PluginConfig</a></li><li><a href="PluginMessage.html">PluginMessage</a></li><li><a href="PluginNodeDescription.html">PluginNodeDescription</a></li><li><a href="PluginResult.html">PluginResult</a></li><li><a href="Project.html">Project</a></li><li><a href="ProjectInterface.html">ProjectInterface</a></li><li><a href="Server_GMEAuth-GMEAuth.html">GMEAuth</a></li><li><a href="Server_SafeStorage-SafeStorage.html">SafeStorage</a></li><li><a href="Server_UserProject-UserProject.html">UserProject</a></li><li><a href="WebsocketRouter.html">WebsocketRouter</a></li><li><a href="WebsocketRouterUser.html">WebsocketRouterUser</a></li></ul><h3>Events</h3><ul><li><a href="Client.html#event:BRANCH_CHANGED">BRANCH_CHANGED</a></li><li><a href="Client.html#event:BRANCH_CLOSED">BRANCH_CLOSED</a></li><li><a href="Client.html#event:BRANCH_OPENED">BRANCH_OPENED</a></li><li><a href="Client.html#event:BRANCH_STATUS_CHANGED">BRANCH_STATUS_CHANGED</a></li><li><a href="Client.html#event:CONNECTED_USERS_CHANGED">CONNECTED_USERS_CHANGED</a></li><li><a href="Client.html#event:NETWORK_STATUS_CHANGED">NETWORK_STATUS_CHANGED</a></li><li><a href="Client.html#event:NOTIFICATION">NOTIFICATION</a></li><li><a href="Client.html#event:PLUGIN_FINISHED">PLUGIN_FINISHED</a></li><li><a href="Client.html#event:PLUGIN_INITIATED">PLUGIN_INITIATED</a></li><li><a href="Client.html#event:PLUGIN_NOTIFICATION">PLUGIN_NOTIFICATION</a></li><li><a href="Client.html#event:PROJECT_CLOSED">PROJECT_CLOSED</a></li><li><a href="Client.html#event:PROJECT_OPENED">PROJECT_OPENED</a></li></ul><h3><a href="global.html">Global</a></h3>
</nav>
<br class="clear">
<footer>
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.2</a> on Fri Jun 21 2024 09:43:40 GMT-0400 (Eastern Daylight Time)
</footer>
<script> prettyPrint(); </script>
<script src="scripts/linenumber.js"> </script>
</body>
</html>