...
- Set the job attribute stop_on_error to the value
no
(a checkbox right above in the job main form in JOE) - Add Pre-/Post-processing and insert the below Javascript linesline
- You will find the API documentation at http://www.sos-berlin.com/doc/en/scheduler.doc/api/api.xml.
- Consider the use of scripting languages in the below examples. The use of
<script language="java:javascript">
allows most compatible use of Javascript across 32 bit and 64 bit environments with Java versions up to 1.7 (scripting engine: Rhino) and later (scripting engine: Nashorn). For details see What are the differences between the SpiderMonkey, Rhino and Nashorn scripting engines?
The above example is added to a job definition like this:
...
Code Block | ||||
---|---|---|---|---|
| ||||
<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>
|