Scheduler Erste Seite – Konfiguration in XML |
<lock.useexclusive |
= "yes|no"
|
Exklusive oder nicht-exklusive Belegung ist möglich |
lock |
= "name"
|
Name der Sperre |
/>
Siehe auch <locks> und <lock>.
<locks>
<lock name="my_file"/>
</lock>
<job name="my_file_reader" tasks="3">
<lock.use lock="my_file" exclusive="no"/>
…
</job>
<job name="my_other_file_reader">
<lock.use lock="my_file" exclusive="no"/>
…
</job>
<job name="my_file_writer">
<lock.use lock="my_file"/>
…
</job>
Die Jobs my_file_reader und my_other_file_reads belegen die Sperre nicht-exklusiv und können gleichzeitig mit mehreren Tasks laufen.
Der Job my_file_writer setzt die Sperre exklusiv und startet nur, wenn kein anderer Job läuft. Der Job kann einen Datenbestand ändern und sich darauf verlassen, dass währenddessen keiner der beiden anderen Jobs den Datenbestand liest.
Siehe auch spooler_task.try_hold_lock().
<base>
Ergänzt ein Element <lock.use> an der entsprechenden Stelle aus der Basiskonfiguration. In <lock.use> angegebene Attribute überschreiben die aus der Basiskonfiguration.
– Definition eines Jobs |
lock="name" Name der Sperre
Die Sperre muss mit <lock> deklariert worden sein.
exclusive="yes|no" (Initialwert: yes) Exklusive oder nicht-exklusive Belegung ist möglich
exclusive="yes" ist voreingestellt. Damit wird die Sperre exklusiv gesetzt und nur eine Task wird gestartet. Alle anderen Jobs, die dieselbe Sperre angegeben, werden in eine Warteschlange eingereiht. Jobs mit exclusive="yes" werden vor Jobs mit exclusive="no" gestartet.
exclusive="no" sperrt nur gegen exklusive Verwendung (exclusive="yes"). Task mit exclusive="no" schließen nur Tasks mit exclusive="yes" aus. Die Zahl von mit exclusive="no" insgesamt laufender Tasks kann mit <lock max_non_exclusive="…"> begrenzt werden.
Zuletzt geändert von Joacim Zschimmer, 2007-02-19 |