|
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 |
| |
|
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
name Pfad des Jobs ohne beginnenden Schrägstrich
|
String |
spooler_job.name()
|
Siehe <job name="…">.
order_queue Auftragswarteschlange des Jobs
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_classDie Prozessklasse
Siehe <job process_class="…">.
Rückgabe
Process_class Exceptions
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">.
start Erzeugt eine neue Task und reiht sie in die Task-Warteschlange ein
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
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
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
Wenn der Job im Zustand pending oder stopped ist (also keine Task läuft), startet der Aufruf eine Task.
Siehe Job.start().
|