Einzelnen Beitrag anzeigen

Benutzerbild von writeln
writeln

Registriert seit: 30. Aug 2004
Ort: Hamburg
28 Beiträge
 
#1

prüfen, ob ein "Job" noch läuft

  Alt 17. Dez 2009, 12:02
Ich habe ein Programm entwickelt, dass Daten zwischen verschiedenen Datenbanken (ODBC) und / oder Outlook syncronisiert.
Das Programm wird über Job-Definitionen (Ini-Dateien) gesteuert. die jeweilige Jobdefinition wird beim Programmstart per Kommando-Parameter mitgegeben.
Zur Zeit schreibe ich an einem Scheduler, der die Jobs zeit-, bzw. ereignisgesteuert ausführt. Mehrere unterschiedliche Jobs dürfen dabei parallel laufen, jedoch nicht zwei gleiche Jobs.

Hier liegt der Knackpunkt:

Ich möchte feststellen,
1. ob die JobEXE läuft (ok, geht mit IsExeRunning, bzw. über die Windows Prozessliste)
2. ob ein bestimmter Job bereits ausgeführt wird (z.B. "adr_odbc2mapi")
der Job darf dann nicht doppelt ausgeführt werden.

Da die JobEXE auch noch manuell per Kommandozeile, bzw. per Desktop Verknüpfung gestartet werden kann, scheidet eine Prüfung per Jobtabelle aus.
Auch die Lösung, eine Logdatei zu schreiben, in die die JobEXEn laufend ihren Staus eintragen möchte ich vermeiden. Die Gefahr, dass Jobs sich bei Abstürzen nicht korrekt austragen ist mir zu groß.

Ich suche nach einer möglichst zuverlässigen Lösung, die auf der jeweiligen Maschine prüft, wie oft die JobEXE läuft und identifiziert, welche Jobs die einzelnen Instanzen gerade bearbeiten. Die Windows Jobliste scheint das nicht her zu geben.

Hat jemand eine Idee?
Sascha
...und ich sach noch: "drück nich auf F9"...
  Mit Zitat antworten Zitat