Zschimmer GmbH Impressum und Kontakt

Job Scheduler     Erste Seite

  XML     API     Register


logo

Job - Programmschnittstelle (API)

JavaJavaScriptVBScriptPerl Javadoc
   

Job

 

void  spooler_job.clear_delay_after_error() Nimmt alle delay_after_error zurück
 
void  spooler_job.clear_when_directory_changed() Nimmt alle start_when_directory_changed() zurück
 
String   spooler_job.configuration_directory() Verzeichnis der Konfigurationsdatei des Jobs
 
void  spooler_job.set_delay_after_error( error_steps, seconds ) Verzögert erneuten Jobstart nach Fehler
void  spooler_job.set_delay_after_error( error_steps, hhmm_ss )
 
void  spooler_job.set_delay_order_after_setback( setback_count, seconds ) Stellt Aufträge nach Fehler zurück
void  spooler_job.set_delay_order_after_setback( setback_count, hhmm_ss )
 
String   spooler_job.folder_path() Pfad des Ordners, in dem der Job sich befindet.
 
String   spooler_job.include_path() Wert der Option -include-path=
 
void  spooler_job.set_max_order_setbacks( int ) Begrenzt die Anzahl der Rückstellungen eines Auftrags
 
String   spooler_job.name() Pfad des Jobs ohne beginnenden Schrägstrich
 
Order_queue   spooler_job.order_queue() Auftragswarteschlange des Jobs
 
Process_class   spooler_job.process_class() Die Prozessklasse
 
void  spooler_job.remove() Entfernt den Job
 
void  spooler_job.set_setback_max( int ) Wie oft kann ein Auftrag zurückgestellt werden?
int   spooler_job.setback_max()
 
Task   spooler_job.start( Variable_set ) Erzeugt eine neue Task und reiht sie in die Task-Warteschlange ein
 
void  spooler_job.start_when_directory_changed( directory_path, filename_pattern ) Überwacht ein Verzeichnis und lässt bei Änderung eine Task starten
void  spooler_job.start_when_directory_changed( directory_path, filename_pattern )
void  spooler_job.start_when_directory_changed( directory_path )
void  spooler_job.start_when_directory_changed( directory_path, filename_pattern )
 
void  spooler_job.set_state_text( String ) Freier Text für den Zustand des Jobs
 
String   spooler_job.title() Titel des Jobs
 
void  spooler_job.wake() Veranlasst den Start einer Task

 

Eine Task kann wartend in der Task-Warteschlange des Jobs sein oder laufen.

 

clear_delay_after_error

Nimmt alle delay_after_error zurück

 

void  spooler_job.clear_delay_after_error()

clear_when_directory_changed

Nimmt alle start_when_directory_changed() zurück

 

void  spooler_job.clear_when_directory_changed()

configuration_directory

Verzeichnis der Konfigurationsdatei des Jobs

 

String   spooler_job.configuration_directory()

 

"", wenn der Job nicht aus einem Konfigurationsverzeichnis stammt.

delay_after_error

Verzögert erneuten Jobstart nach Fehler

 

void  spooler_job.set_delay_after_error( int error_steps, double seconds )
void  spooler_job.set_delay_after_error( int error_steps, String hhmm_ss )

Beispiel  

spooler_job.set_delay_after_error(  2,  10 );          // Ab dem 2. aufeinanderfolgenden Fehler um 10 Sekunden verzögern
spooler_job.set_delay_after_error(  5, "00:01" );      // Ab dem 5. aufeinanderfolgenden Fehler um eine Minute verzögern
spooler_job.set_delay_after_error( 10, "24:00" );      // Ab dem 10. aufeinanderfolgenden Fehler um einen Tag verzögern
spooler_job.set_delay_after_error( 20, "STOP" );       // Beim 20. aufeinanderfolgenden Fehler den Job stoppen

Nach einem Fehler wiederholt der Scheduler den Job sofort.
Nach dem zweiten bis zum vierten Fehler verzögert der Scheduler den Job um 10 Sekunden,
nach dem fünften bis zum neunten Fehler um eine Minute,
nach dem zehnten bis zum neunzehnten um 24 Stunden,
nach dem zwanzigsten aufeinanderfolgenden Fehler schließlich stoppt der Job.

 

Für verschiedene Anzahlen aufeinanderfolgender Fehler kann eine Verzögerung eingestellt werden. Der Job wird dann nicht gestoppt, sondern die angegebene Zeit verzögert und erneut gestartet.

Der Aufruf kann für verschiedene Anzahlen wiederholt werden. Man wird jeweils eine längere Verzögerung angeben.

Wenn Sie den Parameter seconds_or_hhmm_ss als String übergeben, können Sie auch "STOP" angeben. Der Job stoppt, wenn er die angegebene Anzahl aufeinanderfolgende Fehler erreicht hat.

Eine gute Stelle für die Aufrufe ist spooler_init().

Siehe <delay_after_error>.

Parameter

error_steps

Anzahl der aufeinanderfolgenden Jobfehler, ab der die Verzögerung gilt

seconds_or_hhmm_ss

Frist, nach der der Job wiederholt wird

delay_order_after_setback

Stellt Aufträge nach Fehler zurück

 

void  spooler_job.set_delay_order_after_setback( int setback_count, double seconds )
void  spooler_job.set_delay_order_after_setback( int setback_count, String hhmm_ss )

Beispiel  in javascript

spooler_job.delay_order_after_setback( 1 ) = 60;         // 1. bis 2. aufeinderfolgende Rückstellung desselben Auftrags:
                                                         // Auftrag um 60s verzögern.

spooler_job.delay_order_after_setback( 3 ) = "01:00";    // Ab 3. aufeinanderfolgender Rückstellung desselben Auftrags:
                                                         // Auftrag um eine Stunde verzögern.

spooler_job.max_order_setbacks = 5;                      // Die 5. Rückstellung versetzt den Auftrag in den Fehlerzustand

 

Ein Auftragsjob kann einen Auftrag, den er gerade ausführt, mit Order.setback() zurückstellen. Er wird dann an eine hintere Stelle der Auftragswarteschlange des Jobs eingereiht und kommt nach der eingestellten Zeit erneut zur Ausführung.

Die aufeinanderfolgenden Rückstellungen eines Auftrags werden gezählt. Mit delay_order_after_setback können Sie verschiedene Fristen für wiederholte Rückstellungen festlegen.

Siehe <delay_order_after_setback>, Order.setback(), Job.max_order_setbacks, Job_chain.add_job(), Job.delay_after_error().

Parameter

setback_count

Für die 1., 2. usw. aufeinanderfolgende Rückstellung desselben Auftrags können verschiedene Fristen eingestellt werden.

seconds_or_hhmm_ss

Frist für die Rückstellung. Nach Ablauf der Frist kommt der Auftrag erneut in diesem Job zur Ausführung.

folder_path

Pfad des Ordners, in dem der Job sich befindet.

 

String   spooler_job.folder_path()

 

"", wenn der Job nicht aus dem lokalen Konfigurationsverzeichnis (<config configuration_directory="…">) stammt.

Liefert den Pfad des Jobs relativ zum Live-Directory. Der Pfad beginnt mit einem "/", alle Bestandteile eines Pfads sind durch "/" getrennt

Beispiele:

  • für einen Job c:\scheduler\config\live\somewhere\excel\sample.job.xml wird "/somewhere/excel" zurückgeliefert
  • für einen Job c:\scheduler\config\live\sample.xml wird "/" zurückgeliefert
  • für einen Job außerhalb des Live-Verzeichnisses wird "" (Leerstring) zurückgeliefert

include_path

Wert der Option -include-path=

 

String   spooler_job.include_path()

 

Siehe -include-path.

max_order_setbacks

Begrenzt die Anzahl der Rückstellungen eines Auftrags

 

void  spooler_job.set_max_order_setbacks( int )

 

Wenn derselbe Auftrag mehr als hier angegeben aufeinderfolgend zurückgesetzt worden ist (s. Order.setback()), gerät er in den Fehlerzustand (s. Job_chain_node.error_state).

Siehe Job.delay_order_after_setback und <delay_order_after_setback is_maximum="yes">.

Parameter

int

name

Pfad des Jobs ohne beginnenden Schrägstrich

 

String   spooler_job.name()

 

Siehe <job name="…">.

order_queue

Auftragswarteschlange des Jobs

 

Order_queue   spooler_job.order_queue()

Beispiel  in javascript

spooler_log.info( 'order=' + ( spooler_job.order_queue? "yes" : "no" ) );

 

Ein Auftragsjob (<job order="yes">) hat eine Auftragswarteschlange. Die Auftragswarteschlange wird über eine Jobkette, in der der Job eingetragen ist, gefüllt.

Siehe Job_chain.add_order(), Job_chain.add_job().

Rückgabe

Order_queue  

null, wenn der Job keine Auftragswarteschlange hat (bei <job order="no">).

process_class

Die Prozessklasse

 

Process_class   spooler_job.process_class()

 

Siehe <job process_class="…">.

Rückgabe

Process_class  

Exceptions

SCHEDULER-161 There is no objecttype(1) '(2)

remove

Entfernt den Job

 

void  spooler_job.remove()

 

Der Job wird gestoppt, d.h. laufende Tasks werden beendet, keine neuen werden gestartet. Sobald keine Task mehr läuft, wird der Job entfernt.

Tasks in der Warteschlange werden ignoriert.

Wenn keine Task des Jobs läuft, entfernt remove() den Job sofort.

Auftragsjobs (<job order="yes">) können nicht entfernt werden.

Siehe <modify_job cmd="remove">.

setback_max

Wie oft kann ein Auftrag zurückgestellt werden?

 

void  spooler_job.set_setback_max( int )
int   spooler_job.setback_max()

 

Siehe <delay_order_after_setback is_maximum="yes">.

Parameter

int

start

Erzeugt eine neue Task und reiht sie in die Task-Warteschlange ein

 

Task   spooler_job.start( Variable_set  (optional) )

Beispiel  

spooler.job( "job_a" ).start();
sos.spooler.Variable_set parameters = spooler.create_variable_set();
parameter.set_var( "my_parameter", "my_value" );
parameter.set_var( "other_parameter", "other_value" );
spooler.job( "job_a" ).start( parameters );

 

Die Parameter stehen der Task mit Task.params zur Verfügung. Zwei besondere Parameter können angegeben werden:

"spooler_task_name" gibt der Task einen Namen, der in den Statusanzeigen erscheint.
"spooler_start_after" gibt eine Zeit in Sekunden (reelle Zahl) an, nach deren Ablauf die Task zu starten ist. Dabei wird <run_time> nicht beachtet.

Siehe Spooler.create_variable_set(), Spooler.job, Variable_set.value.

Parameter

Variable_set  (optional)

Rückgabe

Task  

start_when_directory_changed

Überwacht ein Verzeichnis und lässt bei Änderung eine Task starten

 

void  spooler_job.start_when_directory_changed( java.io.File directory_path, String filename_pattern  (optional) )
void  spooler_job.start_when_directory_changed( java.io.File directory_path, String filename_pattern  (optional) )
void  spooler_job.start_when_directory_changed( String directory_path )
void  spooler_job.start_when_directory_changed( String directory_path, String filename_pattern  (optional) )

Beispiel  in javascript

spooler_job.start_when_directory_changed( "c:/tmp" );
// Nur Dateien beachten, deren Name nicht auf "~" endet.
spooler_job.start_when_directory_changed( "c:/tmp", "^.*[^~]$" );

 

Wenn keine Task des Jobs läuft und sich das Verzeichnis geändert hat (eine Datei hinzukommt, umbenannt oder entfernt wird), startet der Scheduler innerhalb der <run_time> eine Task.

Um mehrere Verzeichnisse zu überwachen, kann der Aufruf wiederholt werden. Ein Aufruf mit einem bereits angegebenen Verzeichnis erneuert die Überwachung.

Der Aufruf kann im Scheduler-Skript oder in spooler_init() des Jobs codiert werden. Im letzteren Fall muss der Job zu Beginn einmal starten, damit der Aufruf wirksam wird. Verwenden Sie dazu die Einstellung <run_time once="yes">.

Der Job sollte mit <run_time repeat="…"> periodisch gestartet und mit <delay_after_error> versehen werden.

Dieselbe Einstellung können Sie auch in der XML-Konfiguration mit <start_when_directory_changed> vornehmen.

Siehe auch »Verzeichnisüberwachung mit Dateiaufträgen«.

Parameter

directory_path

Pfad des zu überwachenden Verzeichnisses

filename_pattern  (optional)

Beschränkt die Überwachung auf Dateinamen, die dem Regulären Ausdruck entsprechen.

state_text

Freier Text für den Zustand des Jobs

 

void  spooler_job.set_state_text( String )

Beispiel  

spooler_job.set_state_text( "Step C succeeded" );

 

Der Text wird in der HTML-Oberfläche gezeigt.

Für Nicht-API-Jobs füllt der Scheduler dieses Feld mit der ersten Zeile von stdout, max. 100 Zeichen.

Parameter

String

title

Titel des Jobs

 

String   spooler_job.title()

Beispiel  

spooler_log.info( "Job title=" + spooler_job.title() );

 

Siehe <job title="…">.

wake

Veranlasst den Start einer Task

 

void  spooler_job.wake()

 

Wenn der Job im Zustand pending oder stopped ist (also keine Task läuft), startet der Aufruf eine Task.

Siehe Job.start().


Software- und Organisations-Service GmbH

Zuletzt geändert von Joacim Zschimmer, 2009-06-12