You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 4 Next »

Question:

How to execute Jobs and Orders in Remote JobScheduler Instances?

Answer:

You need 2 JobScheduler objects on your local JobSchedProcess Classesuler, a Process Class and a Job. You can use the JobScheduler's editor JOE to create these objects in your local Hot Folder (./live) or you can create the objects using a code editor and the XML listed here.

The XML for the simplest possible process class and job is as follows:

  • Object 1: Process Class

    In the process class (e.g. with the name 'remote') you must define the host and port of the remote JobScheduler, so a file ./live/remote.process_class.xml is generated with the content:

    <?xml version="1.0" encoding="ISO-8859-1"?>
    <process_class max_processes="10"
                remote_scheduler="[your remote host]:[your remote tcp port]"/>

    See the Process Classes article for more information about process classes.

  • Object 2: Job

    In the job (e.g with the name 'remote' as independent job and the title 'Remote Execution') you must set the above process class, so a file ./live/remote.job.xml is generated with the content:

     <?xml version="1.0" encoding="ISO-8859-1"?>
    <job process_class="/remote" title="Remote Execution">
          <script language="shell"><![CDATA[
    echo "remote execution"
          ]]></script>
          <run_time/>
    </job>

    Note that the job could also be configured as an order job for a job chain.

Make sure that ....
  • a JobScheduler is running on the remote host [your remote host] with the port [your remote tcp port]

  • the security elements (see ./config/scheduler.xml) of your local and remote JobSchedulers allow the communication

     local:
    <security ignore_unknown_hosts = "yes">
    ...
    <allowed_host host = "[your remote host]" level = "all"/>
    ...
    </security>
    remote:
    <security ignore_unknown_hosts = "yes">
    ...
    <allowed_host host = "[your local host]" level = "all"/>
    ...
    </security>
                          
  • if a firewall is used then it must also be configured to allow the communication.

You can find more information here:
  • How can I configure a job chain on multiple hosts?. This solution will also work for standalone jobs.
  • Another solution is central configuration. A supervisor will deploy job configurations to workload JobSchedulers. These workload JobSchedulers execute their jobs independently, so if the machine of the supervisor goes down, the workload Schedulers can continue working, however jobs have to be monitored in each Scheduler seperately.
  • No labels