Zschimmer GmbH Impressum und Kontakt

Job Scheduler     Erste Seite

  XML     API     Register


logo

Job - Programmschnittstelle (API)

JavaJavaScriptVBScriptPerl Javadoc
   

Job

 

$spooler_job->clear_delay_after_error() Nimmt alle delay_after_error zurück
 
$spooler_job->clear_when_directory_changed() Nimmt alle start_when_directory_changed() zurück
 
String   $spooler_job->configuration_directory Verzeichnis der Konfigurationsdatei des Jobs
 
$spooler_job->LetProperty( 'delay_after_error', error_steps, seconds_or_hhmm_ss ) Verzögert erneuten Jobstart nach Fehler
 
$spooler_job->LetProperty( 'delay_order_after_setback', setback_count, seconds_or_hhmm_ss ) Stellt Aufträge nach Fehler zurück
 
String   $spooler_job->folder_path Pfad des Ordners, in dem der Job sich befindet.
 
String   $spooler_job->include_path Wert der Option -include-path=
 
$spooler_job->LetProperty( '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
 
$spooler_job->remove() Entfernt den Job
 
$spooler_job->LetProperty( '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
 
$spooler_job->start_when_directory_changed( directory_path, filename_pattern ) Überwacht ein Verzeichnis und lässt bei Änderung eine Task starten
 
$spooler_job->LetProperty( 'state_text', String ) Freier Text für den Zustand des Jobs
 
String   $spooler_job->title Titel des Jobs
 
$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

 

$spooler_job->clear_delay_after_error()

clear_when_directory_changed

Nimmt alle start_when_directory_changed() zurück

 

$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

 

$spooler_job->LetProperty( 'delay_after_error', int error_steps, double|int|String seconds_or_hhmm_ss )

Beispiel  in javascript

spooler_job.delay_after_error(  2 ) = 10;           // Ab dem 2. aufeinanderfolgenden Fehler um 10 Sekunden verzögern
spooler_job.delay_after_error(  5 ) = "00:01";      // Ab dem 5. aufeinanderfolgenden Fehler um eine Minute verzögern
spooler_job.delay_after_error( 10 ) = "24:00";      // Ab dem 10. aufeinanderfolgenden Fehler um einen Tag verzögern
spooler_job.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

 

$spooler_job->LetProperty( 'delay_order_after_setback', int setback_count, double|int|String seconds_or_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

 

$spooler_job->LetProperty( '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  

$spooler_log->info( 'order=' . ( defined $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  

undefined, 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

 

$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?

 

$spooler_job->LetProperty( '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();
my $parameters = $spooler->create_variable_set();
$parameters->LetProperty( 'var', 'my_parameter', 'my_value' );
$parameters->LetProperty( '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

 

$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

 

$spooler_job->LetProperty( 'state_text', String )

Beispiel  

$spooler_job->LetProperty( '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

 

$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