Jump to content

Aufgabe in Web GUI starten


x112

Recommended Posts

Ich habe mir für den EPG Download per XEPG eine Aufgabe gebastelt, die als Timer auch prima funktioniert. Wenn ich die Aufgabe aber aus der Weboberfläche starte, wird das Programm laut Log zwar gestartet, aber gleich gekilled. Lässt sich das irgendwie vermeiden?

Hier ein Auszug aus dem Log: zuerst ein Timer, dann der Aufruf aus der Webseite

01.05.18 10:20:00.884 TWinApp              Execute          C:\Program Files\Xepg\Xepg.exe
01.05.18 10:20:00.884 TWinApp              Working Directory C:\Program Files\Xepg\
01.05.18 10:20:00.947 TProcessTimer        ProcTimer        started
01.05.18 10:20:26.063 TServiceMain         AddReference     WebMain: 2
01.05.18 10:21:09.618 TServiceMain         ReleaseReference WebMain: 1
01.05.18 10:21:29.399 TServiceMain         AddReference     WebMain: 2
01.05.18 10:22:02.346 TServiceMain         ReleaseReference WebMain: 1
01.05.18 10:22:21.721 TServiceMain         AddReference     WebMain: 2
01.05.18 10:22:45.371 TBaseProcess         API_HandleStatus
01.05.18 10:22:45.371 TBaseProcess         epgclear         epgclear.html
01.05.18 10:22:51.237 TProcessTimer        Proctimer        finished
01.05.18 10:22:51.237 TServiceMain         ReleaseReference TVCR: 1
01.05.18 10:23:31.578 ReleaseStandbyblock  WebMain
01.05.18 10:23:31.578 TServiceMain         ReleaseReference WebMain: 0
01.05.18 10:27:41.553 SetStandbyBlock      WebMain
01.05.18 10:27:41.553 TServiceMain         AddReference     WebMain: 1
01.05.18 10:27:43.285 TWinApp              Execute          C:\Program Files\Xepg\Xepg.exe
01.05.18 10:27:43.285 TWinApp              Working Directory C:\Program Files\Xepg\
01.05.18 10:28:13.486 ReleaseStandbyblock  WebMain

 

Link to comment

DMS ist die aktuelle Version von vor ein paar Tagen. In der Version davor habe ich das nicht probiert, also keine Ahnung ob das da auch schon auftrat. Der Aufruf über einen Timer läuft ca. 3 Minuten, beim Aufruf auf der Aufgaben Seite wird nur für ca. 2 Sekunden eine Meldung zum Start eingeblendet. Auf dem Rechner sehe ich nichts im Taskmanager, deshalb die Vermutung das hier etwas zu früh beendet wird und XEPG und xmltv gleich mit beendet wird. In der Task Definition steht "C:\Program Files\Xepg\Xepg.exe -xGrabThenImport". Aus XEPG wird eine VBS Datei gestartet (die im XEPG vorhandene batNoConsole.vbs) die wiederum ein Batchfile startet das die Daten per xmltv lädt.

Link to comment
6 hours ago, x112 said:

Der Aufruf über einen Timer läuft ca. 3 Minuten

 

Und der Prozess ist so lange im Taskmanager sichtbar?

 

6 hours ago, x112 said:

deshalb die Vermutung das hier etwas zu früh beendet wird

 

Der DMS beendet von sich aus keine externen Prozesse. Er startet sie nur. Beenden müssen sie sich selbst.

 

Um die Ausführung der Task besser überwachen zu können, würde ich den DMS probeweise als Anwendung im Benutzerkonto starten:

  • Über das Tray-Icon den DMS als Service stoppen.
  • DVBVservice.exe mit Doppelklick starten - es erscheint ein kleines Fenster, über das der DMS sich wieder beenden lässt. Das Tray-Tool erkennt ihn in dem Modus nicht und kann ihn nicht steuern
  • Task ausführen. Da der DMS nun als GUI-Anwendung läuft, werden auch von ihm gestartete Prozesse mit Benutzeroberfläche sichtbar.

Wenn ich auf diese Weise zum Beispiel den DVBViewer als Task starte, läuft der, bis ich ihn beende.

 

Link to comment

Peinlich: bei den letzten Experimenten hatte ich wohl den Haken bei "Prozesse aller User anzeigen" vergessen. Sowohl als Task, als auch als Aufgabe laufen 4 Prozesse ca. 3 Minuten: cmd, wscript, xepg und xmltv. Der Unterschied ist:

- beim Task sieht man die ganzen 3 Minuten den Status running. Wenn mein Script fertig ist, geht der Status auf erledigt und der Task wird für den nächsten Tag eingeplant. Auch wenn z.B. 5 Minuten für den Task eingeplant ist, wird er nach ca. 3 Minuten als erledigt angezeigt. Passt also.

- bei der Aufgabe verschwindet nach 1-2 Sekunden das Popup running, aber die obigen Prozesse laufen normal weiter (im Systemaccount).

 

Ist das so Absicht oder sollte das Running Popup bis zum tatsächlichen Ende stehen bleiben?

Link to comment
2 hours ago, x112 said:

Ist das so Absicht

 

Ja. Das Popup wird nach einer festgelegten Zeit durch einen Javascript-Timer ausgeblendet. Es geht hier nur um die Rückmeldung, dass die Task gestartet wurde.

 

Ein Server reagiert auf Client-Anforderungen, aber der Client (= Browser) weiß ja nicht, wann die Task fertig ist. Es sei denn, man lässt dort Javascript laufen, das ständig nachfragt. Auch nicht so schön ;)

 

Link to comment

Polling fände ich auch nicht so schön.

 

Jetzt gibt es nur noch einen Unterschied:

- ein externer Task TImer ist am Ende des Programm fertig, egal was man als Laufzeit einstellt.

- ein interner EPG Timer braucht immer so lange wie man einstellt. Auch wenn der Scan schon längst fertig ist, wartet er einfach noch. Warum eigentlich?

 

Link to comment
3 hours ago, x112 said:

ein interner EPG Timer braucht immer so lange wie man einstellt. Auch wenn der Scan schon längst fertig ist, wartet er einfach noch. Warum eigentlich?

 

Ich denke, weil es im DMS keine Mechanismen gibt (und noch nie gab), die einer internen Task ihren Auslöser und ihre tatsächliche Laufzeit zuordnen. Zum Beispiel merkt sich der DMS bei Datenbank-Tasks nicht, wodurch sie veranlasst wurde, kann also nach dem Start die Zugehörigkeit zum Timer nicht mehr feststellen. Teilweise ist die Laufzeit auch Definitionssache. Wann ist eine System-Aufgabe wie "Neustart" fertig? Wenn sie veranlasst wurde? Wenn der Anwender sie abbricht? Wenn der PC runterfährt? Wieder hochgefahren ist? Man müsste für jede interne Aufgabenart erst die Möglichkeit einer Zuordnung und Abfrage "Läuft sie noch" implementieren. Das ist einige Arbeit, die Lars wohl früher vermieden hat, weil er das Thema als nicht besonders wichtig ansah.

 

Für jede Prozess-Task gibt es dagegen ein separates Objekt, das die Ausführung durch das OS kapselt (also quasi einen "Wrapper") und dessen Eigenschaft "Running" zu entnehmen ist, ob der Prozess noch läuft oder nicht.

 

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...