Question:

How to run a task manually standalone, that is shown as part of a job chain?

Answer:

The short answer is: please copy your job, assign a new job name and omit the attribute order="yes". To save the hazzle of repeatedly typing the implementation you could include the same implementation in multiple jobs:

<job name="job_1">
  <script language="shell">
    <include file="my_shell_commands.cmd"/>
  </script>
</job>
              

The reason for this behavior is: You can run any jobs manually standalone if they are not part of a job chain (attribute order="no" or missing attribute). The JobScheduler Operations Center interface offers the respective menu option to start such jobs. However, if a job is part of a job chain, then you would want the complete job chain to be passed through.

Moreover, there are some subtle differences between standalone jobs and jobs in a job chain (which is why you would rarely use the same implementation) that become evident if you use JobScheduler API in your jobs:

  • In addition to job parameters that are visible exclusively to the respective jobs an order can carry parameters (payload) that are visible to all jobs in a job chain.
  • The return code of API job implementations uses true in the spooler_process() method to cause repeated processing of this job whereas order driven jobs signal successful completion of a job node by true and an error by false.

The standard jobs and examples of API jobs that you find in the solutions section of JobScheduler web site support both modes for orders and standalone jobs.

  • No labels