Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  1. Set the job attribute stop_on_error to the value no (a checkbox right above in the job main form in JOE)
  2. Add Pre-/Post-processing and insert the below Javascript linesline

The above example is added to a job definition like this:

...

Code Block
languagexml
collapsetrue
<job order="yes" stop_on_error="no">
  <script language="shell"><![CDATA[
 ./config/live/test/test.sh
  ]]></script>
  <monitor name="exit_code_handler" ordering="0">
    <script language="java:javascript"><![CDATA[
function spooler_task_after() {
    spooler_job.clear_delay_after_error();
    var rc = spooler_task.exit_code;
    switch( rc ) {
        case  0 :
            spooler_log.info("Script ended with exit code " + rc);
            break;
        case  1 :
            spooler_log.error("Script ended with exit code " + rc);
            spooler_log.error("suspend order");
                        spooler_task.order.suspended = true ;
                        spooler_task.order.state = spooler_task.order.state;
            break;
        case  5 :
            spooler_log.error("Script ended with exit code " + rc);
            spooler_log.info("Order restarts job in 1 hour");
            spooler_job.state_text = "Order restarts job in 1 hour";
                        spooler_job.set_delay_order_after_setback( 1, "01:00" );
                        spooler_job.max_order_setbacks = 1;
            spooler_log.error("setback order");
                        spooler_task.order.setback();
            break;
        default :
            spooler_log.warn("Script ended with exit code " + rc);
            spooler_log.info("Exit code changed to 0");
            spooler_task.exit_code = 0;
                        var next_state = spooler_task.order.job_chain_node.next_state;
                        spooler_log.info("order state changed to " + next_state);
                        spooler_task.order.state = next_state;
            break;
    }
 } 
    ]]></script>
  </monitor>
</job>