Table of Contents | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
|
Setback intervals based on exit codes
If you want to set different setback intervals depending on the exit code , then you can use the internal API by defining a post-processing routine after the task.
...
- Define a post-processing function spooler_task_after()
- Code the switch with your requirements.
- Add the job to a job chain. Do this even you only have one job in the chain.
XML
...
Configuration of the
...
Job
Code Block | ||
---|---|---|
| ||
<job order="yes" stop_on_error="no"> <script language="shell"><![CDATA[ exit 0 ]]></script> <monitor name="handleSetback" ordering="0"> <script language="javax.script:ecmascript"><![CDATA[ function spooler_task_after() { var exit = spooler_task.exit_code(); var job = spooler_task.job(); // After one setback, handle this as an error. job.set_max_order_setbacks( 1 ); switch ( exit ) { case 0: // proceed return true; case 1: // Restart after 60 seconds job.set_delay_order_after_setback( 1, "60" ); break; case 4444: // Restart after 2 hours job.set_delay_order_after_setback( 1, "02:00:00" ); break; default: // Restart after 300 seconds job.set_delay_order_after_setback( 1, "300" ); break; } } ]]></script> </monitor> <run_time/> </job> |
XML configuration of the
...
Job Chain
Code Block |
---|
<job_chain orders_recoverable="yes" visible="yes" name="job_chain1">chain> <job_chain_node state="100" job="job1" next_state="success" error_state="error" on_error="setback"/> <job_chain_node state="success"/> <job_chain_node state="error"/> </job_chain> |
See also