<!-- Generated by pkgdown: do not edit by hand -->
<!DOCTYPE html>
<html lang="en">
  <head>
  <meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">

<title>Wait for Termination of Jobs — waitForJobs • batchtools</title>


<!-- jquery -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min.js" integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=" crossorigin="anonymous"></script>
<!-- Bootstrap -->

<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.4.1/css/bootstrap.min.css" integrity="sha256-bZLfwXAP04zRMK2BjiO8iu9pf4FbLqX6zitd+tIvLhE=" crossorigin="anonymous" />

<script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.4.1/js/bootstrap.min.js" integrity="sha256-nuL8/2cJ5NDSSwnKD8VqreErSWHtnEP9E7AySL+1ev4=" crossorigin="anonymous"></script>

<!-- bootstrap-toc -->
<link rel="stylesheet" href="../bootstrap-toc.css">
<script src="../bootstrap-toc.js"></script>

<!-- Font Awesome icons -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.12.1/css/all.min.css" integrity="sha256-mmgLkCYLUQbXn0B1SRqzHar6dCnv9oZFPEC1g1cwlkk=" crossorigin="anonymous" />
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.12.1/css/v4-shims.min.css" integrity="sha256-wZjR52fzng1pJHwx4aV2AO3yyTOXrcDW7jBpJtTwVxw=" crossorigin="anonymous" />

<!-- clipboard.js -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.6/clipboard.min.js" integrity="sha256-inc5kl9MA1hkeYUt+EC3BhlIgyp/2jDIyBLS6k3UxPI=" crossorigin="anonymous"></script>

<!-- headroom.js -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/headroom/0.11.0/headroom.min.js" integrity="sha256-AsUX4SJE1+yuDu5+mAVzJbuYNPHj/WroHuZ8Ir/CkE0=" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/headroom/0.11.0/jQuery.headroom.min.js" integrity="sha256-ZX/yNShbjqsohH1k95liqY9Gd8uOiE1S4vZc+9KQ1K4=" crossorigin="anonymous"></script>

<!-- pkgdown -->
<link href="../pkgdown.css" rel="stylesheet">
<script src="../pkgdown.js"></script>




<meta property="og:title" content="Wait for Termination of Jobs — waitForJobs" />
<meta property="og:description" content="This function simply waits until all jobs are terminated." />




<!-- mathjax -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js" integrity="sha256-nvJJv9wWKEm88qvoQl9ekL2J+k/RWIsaSScxxlsrv8k=" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/config/TeX-AMS-MML_HTMLorMML.js" integrity="sha256-84DKXVJXs0/F8OTMzX4UR909+jtl4G7SPypPavF+GfA=" crossorigin="anonymous"></script>

<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]-->



  </head>

  <body data-spy="scroll" data-target="#toc">
    <div class="container template-reference-topic">
      <header>
      <div class="navbar navbar-default navbar-fixed-top" role="navigation">
  <div class="container">
    <div class="navbar-header">
      <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false">
        <span class="sr-only">Toggle navigation</span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
      </button>
      <span class="navbar-brand">
        <a class="navbar-link" href="../index.html">batchtools</a>
        <span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.9.14</span>
      </span>
    </div>

    <div id="navbar" class="navbar-collapse collapse">
      <ul class="nav navbar-nav">
        <li>
  <a href="../index.html">
    <span class="fas fa fas fa-home fa-lg"></span>
     
  </a>
</li>
<li>
  <a href="../articles/batchtools.html">Get started</a>
</li>
<li>
  <a href="../reference/index.html">Reference</a>
</li>
<li>
  <a href="../news/index.html">Changelog</a>
</li>
      </ul>
      <ul class="nav navbar-nav navbar-right">
        <li>
  <a href="https://github.com/mllg/batchtools/">
    <span class="fab fa fab fa-github fa-lg"></span>
     
  </a>
</li>
      </ul>
      
    </div><!--/.nav-collapse -->
  </div><!--/.container -->
</div><!--/.navbar -->

      

      </header>

<div class="row">
  <div class="col-md-9 contents">
    <div class="page-header">
    <h1>Wait for Termination of Jobs</h1>
    <small class="dont-index">Source: <a href='https://github.com/mllg/batchtools/blob/master/R/waitForJobs.R'><code>R/waitForJobs.R</code></a></small>
    <div class="hidden name"><code>waitForJobs.Rd</code></div>
    </div>

    <div class="ref-description">
    <p>This function simply waits until all jobs are terminated.</p>
    </div>

    <pre class="usage"><span class='fu'>waitForJobs</span><span class='op'>(</span>
  ids <span class='op'>=</span> <span class='cn'>NULL</span>,
  sleep <span class='op'>=</span> <span class='cn'>NULL</span>,
  timeout <span class='op'>=</span> <span class='fl'>604800</span>,
  expire.after <span class='op'>=</span> <span class='cn'>NULL</span>,
  stop.on.error <span class='op'>=</span> <span class='cn'>FALSE</span>,
  stop.on.expire <span class='op'>=</span> <span class='cn'>FALSE</span>,
  reg <span class='op'>=</span> <span class='fu'><a href='getDefaultRegistry.html'>getDefaultRegistry</a></span><span class='op'>(</span><span class='op'>)</span>
<span class='op'>)</span></pre>

    <h2 class="hasAnchor" id="arguments"><a class="anchor" href="#arguments"></a>Arguments</h2>
    <table class="ref-arguments">
    <colgroup><col class="name" /><col class="desc" /></colgroup>
    <tr>
      <th>ids</th>
      <td><p>[<code><a href='https://rdrr.io/r/base/data.frame.html'>data.frame</a></code> or <code>integer</code>]<br />
A <code><a href='https://rdrr.io/r/base/data.frame.html'>data.frame</a></code> (or <code><a href='https://Rdatatable.gitlab.io/data.table/reference/data.table.html'>data.table</a></code>)
with a column named &#8220;job.id&#8221;.
Alternatively, you may also pass a vector of integerish job ids.
If not set, defaults to the return value of <code><a href='findJobs.html'>findSubmitted</a></code>.
Invalid ids are ignored.</p></td>
    </tr>
    <tr>
      <th>sleep</th>
      <td><p>[<code>function(i)</code> | <code><a href='https://rdrr.io/r/base/numeric.html'>numeric(1)</a></code>]<br />
Parameter to control the duration to sleep between queries.
You can pass an absolute numeric value in seconds or a <code>function(i)</code> which returns
the number of seconds to sleep in the <code>i</code>-th iteration.
If not provided (<code>NULL</code>), tries to read the value (number/function) from the configuration file
(stored in <code>reg$sleep</code>) or defaults to a function with exponential backoff between
5 and 120 seconds.</p></td>
    </tr>
    <tr>
      <th>timeout</th>
      <td><p>[<code><a href='https://rdrr.io/r/base/numeric.html'>numeric(1)</a></code>]<br />
After waiting <code>timeout</code> seconds, show a message and return
<code>FALSE</code>. This argument may be required on some systems where, e.g.,
expired jobs or jobs on hold are problematic to detect. If you don't want
a timeout, set this to <code>Inf</code>. Default is <code>604800</code> (one week).</p></td>
    </tr>
    <tr>
      <th>expire.after</th>
      <td><p>[<code><a href='https://rdrr.io/r/base/integer.html'>integer(1)</a></code>]<br />
Jobs count as &#8220;expired&#8221; if they are not found on the system but have not communicated back
their results (or error message). This frequently happens on managed system if the scheduler kills
a job because the job has hit the walltime or request more memory than reserved.
On the other hand, network file systems often require several seconds for new files to be found,
which can lead to false positives in the detection heuristic.
<code>waitForJobs</code> treats such jobs as expired after they have not been detected on the system
for <code>expire.after</code> iterations.
If not provided (<code>NULL</code>), tries to read the value from the configuration file (stored in <code>reg$expire.after</code>),
and finally defaults to <code>3</code>.</p></td>
    </tr>
    <tr>
      <th>stop.on.error</th>
      <td><p>[<code><a href='https://rdrr.io/r/base/logical.html'>logical(1)</a></code>]<br />
Immediately cancel if a job terminates with an error? Default is
<code>FALSE</code>.</p></td>
    </tr>
    <tr>
      <th>stop.on.expire</th>
      <td><p>[<code><a href='https://rdrr.io/r/base/logical.html'>logical(1)</a></code>]<br />
Immediately cancel if jobs are detected to be expired? Default is <code>FALSE</code>.
Expired jobs will then be ignored for the remainder of <code>waitForJobs()</code>.</p></td>
    </tr>
    <tr>
      <th>reg</th>
      <td><p>[<code><a href='makeRegistry.html'>Registry</a></code>]<br />
Registry. If not explicitly passed, uses the default registry (see <code><a href='getDefaultRegistry.html'>setDefaultRegistry</a></code>).</p></td>
    </tr>
    </table>

    <h2 class="hasAnchor" id="value"><a class="anchor" href="#value"></a>Value</h2>

    <p>[<code><a href='https://rdrr.io/r/base/logical.html'>logical(1)</a></code>]. Returns <code>TRUE</code> if all jobs terminated
  successfully and <code>FALSE</code> if either the timeout is reached or at least
  one job terminated with an exception or expired.</p>

  </div>
  <div class="col-md-3 hidden-xs hidden-sm" id="pkgdown-sidebar">
    <nav id="toc" data-toggle="toc" class="sticky-top">
      <h2 data-toc-skip>Contents</h2>
    </nav>
  </div>
</div>


      <footer>
      <div class="copyright">
  <p>Developed by Michel Lang, Bernd Bischl.</p>
</div>

<div class="pkgdown">
  <p>Site built with <a href="https://pkgdown.r-lib.org/">pkgdown</a> 1.6.1.</p>
</div>

      </footer>
   </div>

  


  </body>
</html>


