Forums Neueste Beiträge
 

Gibt es einen Task Scheduler?

08/06/2014 - 16:01 von Martin Vaeth | Report spam
Vielleicht ist die Terminologie "Task Scheduler"
im Subject falsch:

Gesucht ist ein Programm/Daemon, der andere Programme startet.
Aber nicht wie Cron zu einer bestimmten Zeit (ich suche also
*nicht* so etwas wie "at"), sondern in einem Abhàngigkeitsbaum,
der allerdings *dynamisch* verànderbar sein soll.

Ein Beispiel:
Eine "Emulation" eines solchen Schedulers für einen bestimmten
Baum könnte man als Shell-Script (oder in einer interaktiven Shell)
schreiben, etwa:

cmd1; cmd2 && {
cmd3 &
c3=$!
if cmd4
then cmd5
else cmd6 ; cmd7
fi &
cmd8 && wait $c3
} && cmd9 || wait; cmd10

(Das Beispiel ist "rein zufàllig": Es soll nur verdeutlichen,
dass der Baum vom Exitstatus der Programme abhàngen kann,
und ggf. gewünscht wird, einige Programme parallel zu starten.)

Ein solche Implementation des Schedulers als (konkretes)
Shell-Skript hat aber den Nachteil, dass man den Baum nicht
mehr veràndern kann, sobald das Skript einmal gestartet wurde.
Ich suche aber etwas, mit dem genau das möglich ist:

Man stelle sich vor, dass viele der Programme
"lange" brauchen (Stunden, Tage, etc.).
Dann wünscht man sich eben zuweilen (z.B. aufgrund der
Ausgaben von cmd1, die man inzwischen sieht, und
wàhrend "cmd2" gerade abgewarbeitet wird), vor "cmd10"
doch noch ein "cmd10a &&" einzuflicken.
Mit einem Shell-Skript ist das nicht mehr ohne weiteres möglich.

(Klar könnte man gewisse potentielle Erweiterungen in dem
Skript von vornherein vorsehen, aber ich suche etwas Generisches,
bei dem nahezu beliebige Änderungen des Baums im Nachhinein
möglich sind).

Gibt es so etwas bereits? Oder etwas, mit dem man das leicht
erreichen kann (ohne auf Hacks zurückgreifen zu müssen, die
an den speziellen "Baum" angepasst sind, für die es natürlich
jeweils allerlei Notlösungen gibt).

Ich könnte mir vorstellen, dass man mit dbus so etwas basteln
könnte, aber dann ist man entweder auf Programme für den
User beschrànkt (falls man den session-dbus benutzt)
oder hat Schwierigkeiten mit Policies u.a. (falls man den
system-dbus benutzt). Aber immerhin wàre das ein Anfang.

Gibt es so etwas bereits fertig, ist es ev. sogar
in irgendeine DE samt handlicher GUI oder passender
Scheduler-"Sprache" integriert?
 

Lesen sie die antworten

#1 Peter J. Holzer
08/06/2014 - 16:55 | Warnen spam
On 2014-06-08 14:01, Martin Vaeth wrote:
Vielleicht ist die Terminologie "Task Scheduler"
im Subject falsch:

Gesucht ist ein Programm/Daemon, der andere Programme startet.
Aber nicht wie Cron zu einer bestimmten Zeit (ich suche also
*nicht* so etwas wie "at"), sondern in einem Abhàngigkeitsbaum,
der allerdings *dynamisch* verànderbar sein soll.

Ein Beispiel:
Eine "Emulation" eines solchen Schedulers für einen bestimmten
Baum könnte man als Shell-Script (oder in einer interaktiven Shell)
schreiben, etwa:

cmd1; cmd2 && {
cmd3 &
c3=$!
if cmd4
then cmd5
else cmd6 ; cmd7
fi &
cmd8 && wait $c3
} && cmd9 || wait; cmd10



Ja, gibt es. Z.B. von UC4. Kostet allerdings für durchaus überschaubare
Mengen von Jobs einen vier- bis fünfstelligen Betrag pro Jahr (Stand von
vor ein paar Jahren, als ich mir das etwas genauer angeschaut habe).
http://de.wikipedia.org/wiki/Enterp...Scheduling listet noch einen
Haufen vergleichbarer Produkte auf. Open-Source-Lösung kenne ich keine.

(Das interessante daran ist, dass man sowas in Wirklichkeit sehr selten
braucht. Ich dachte mir damals, "Das ist nett, aber sowas schreibe ich
in einer Woche" und suchte dann nach einer Anwendungsmöglichkeit, mit
der ich meinem Chef eine Woche meiner Arbeitszeit (deutlich weniger als
die jàhrlichen Lizenzkosten) hàtte schmackhaft machen können: Ich habe
nichts gefunden. Bei allem, was wir an automatisierten Jobs hatten,
hàtte so ein Tool keine oder nur geringer Vorteile gegenüber cron+shell
gebracht.)

hp


_ | Peter J. Holzer | Fluch der elektronischen Textverarbeitung:
|_|_) | | Man feilt solange an seinen Text um, bis
| | | | die Satzbestandteile des Satzes nicht mehr
__/ | http://www.hjp.at/ | zusammenpaßt. -- Ralph Babel

Ähnliche fragen