Table of Contents | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
|
The JobScheduler can be controlled by commands (e.g. starting a jobs) from external applications (or scripts).
More information of all available commands can be found here: Jetty/xml_commands.xml Command List].
...
You can use JOC to send a command using the URL:
Code Block |
---|
http://[scheduler_host]:[scheduler_port]/<span style="color:red;"><show_state/></span>
|
or if you open JOC with [How_to_run_JobScheduler_with_ Jetty then type:
Code Block |
---|
http://[scheduler_host]:[jetty_port]/jobscheduler/engine-cpp/<span style="color:red;"><show_state/></span>
|
where <span style="color:red;"><show<show_state/></span> > is an example for a command of the JobScheduler external API.
...
You can use the startscript found in "./bin" to send a command too.
An example for using the command line option
Code Block |
---|
jobscheduler.sh command "<span style="color:red;"><show<show_state/></span>>" |
The answer of jobscheduler.sh command ... is without indent and newlines.
If you want a more readable answer then type
Code Block |
---|
jobscheduler.sh command "<span style="color:red;"><show<show_state/></span>>" | sed -e 's;[^>]*$;;' | xmllint --format - |
Object Model: start an order
Code Block |
---|
package com.sos.scheduler.model.commands; import java.util.List; import org.apache.log4j.Logger; import org.junit.BeforeClass; import org.junit.Test; import com.sos.JSHelper.Exceptions.JobSchedulerException; import com.sos.scheduler.model.SchedulerObjectFactory; import com.sos.scheduler.model.answers.Answer; import com.sos.scheduler.model.answers.ERROR; import com.sos.scheduler.model.objects.Params; import com.sos.scheduler.model.objects.Spooler; public class JSCmdAddOrderTest \{ private final static Logger logger = Logger.getLogger(JSCmdAddOrderTest.class); private static SchedulerObjectFactory factory = null; @BeforeClass public static void setUpBeforeClass() throws Exception \{ factory = new SchedulerObjectFactory("localhost", 4112); factory.initMarshaller(Spooler.class); \} @Test public final void testSetValidXmlContent() \{ JSCmdAddOrder cmdOrder = factory.createAddOrder(); cmdOrder.setJobChain("/job_chain_multiple_inheritance_sample/job_chain_multiple_inheritance_sample"); cmdOrder.setReplace("yes"); cmdOrder.setId("A"); cmdOrder.setTitle("JobNet: null"); cmdOrder.setParams(new Params()); List<Object> objL = cmdOrder.getParams().getParamOrCopyParamsOrInclude(); objL.add(factory.createParam("successor", "B,C,D,")); objL.add(factory.createParam("predecessor", "")); objL.add(factory.createParam("script_to_execute", "echo Here is the bootstrap order")); objL.add(factory.createParam("uuid_jobnet_identifier", "989ac2ce-2538-4276-8003-3350a6224c97")); objL.add(factory.createParam("jobnet", "/job_chain_multiple_inheritance_sample/job_chain_multiple_inheritance_sample")); cmdOrder.setAt("2012-04-17 22:00"); String xml = cmdOrder.toXMLString(); cmdOrder.run(); Answer answer = cmdOrder.getAnswer(); ERROR jsError = answer.getERROR(); if (jsError != null) \{ logger.debug(xml + "\n" + jsError.getText()); throw new JobSchedulerException("Error in execution of order"); \} \} \} |
see also
- [Technical description of JobScheduler/scheduler.pdf], Chapter 5.2 ff
- [The xml for the external API/xml.xml]
- [SOSJobSchedulerModel/SOSJobSchedulerModel/html/index.html]
- [SOSJobSchedulerModel, junit testsSOSJobSchedulerModel.junit/html/index.html]