Worker 2 Dienst läuft aber mehr nicht || Wie Worker 2 extern überwachen?

ple

Sehr aktives Mitglied
20. August 2019
823
165
Eigentlich hatte ich nie Probleme mit dem Worker, der tat seinen Dienst wie sonst auch.
Aber jetzt auf einmal, macht der nichts mehr und ich kriege es nicht mit. Der Dienst läuft normal, aber der Status in Wawi meldet halt, dass der nicht läuft.
Jetzt will ich den Worker selber überwachen und gegeben falls neu starten lassen, wenn er tot ist.
Das wollte ich dann mittels Nodejs überprüfen, das läuft eh schon bei mir und macht ne ganze Menge andere Sachen.
Tja, jetzt die Frage, was kann man so alles überwachen? Irgendwelche Einträge im SQL? Oder Ereignismeldung? oder was macht man da am besten?

Gruß und Danke für ein paar Tipps.


Workerl fehler.png
 

ple

Sehr aktives Mitglied
20. August 2019
823
165
du meinst logs als Datei? Die habe ich noch nicht gefunden.
das einzige was ich gefunden habe ist auf dem SQL Worker.tStatus. Denke das sind auch die Anzeigen, wie im Infofenster vom WorkerStatus.
Code:
1    5    -1    2025-10-29 06:06:40.713    1    NULL
1    2    -1    2025-10-29 06:06:31.100    3    29.10.2025 07:11:31 Uhr

dann hätte ich noch Worker.terrorlog. da kann ich aber aktuell noch nichts mit anfangen.
Code:
1    5    -1    2025-10-29 05:38:04.907    Fehler beim Initialisieren von JTL-Worker-Client.exe.
1    7    -1    2025-10-29 04:58:03.640    Fehler beim Initialisieren von JTL-Worker-Client.exe.


Gefunden hätte ich dann noch windows-Protokolle, das wäre mein erster Ansatz.
Code:
(3) [JTL-Worker]: Workflows: Fertig. Nächste Ausführung ist um 06:58:36 Uhr.

Eventuell die letzten 20 Auslesen, die Uhrzeit extrahieren und vergleichen mit aktueller.
Wenn die überschritten ist für 5 min, dann müsste ich vielleicht den Dienst neustarten.
Wer hat da schon Rrfahrung mit? Reicht ein neustart vom Dienst oder sollte man ihn besser komplett killen? Frage ist auch, wenn ein Ebay komplettabgleich oder so läuft, dann kann es auch mal länger laufen.

Gruß und Danke für die Infos.
 

NFPro

Sehr aktives Mitglied
7. Oktober 2022
116
35
Ich habe zwar nicht über nodejs, aber ne Abfrage welche einmal die Stunde den Status prüft , wenn Status = -1 (ausm Kopf weiß ich die zahlö nicht mehr :) ), dann mach was.
 

ple

Sehr aktives Mitglied
20. August 2019
823
165
Man müsste erstmal auch wissen welche Version du hast.

Was benötigst du denn bzw. was geht nicht?

Der JTL-POS-Server steht immer auf "läuft", auch die Fehlermeldung "Fehler beim Initialisieren von JTL-Worker-Client.exe." ist je nach Version normal. (Forensuche)
https://issues.jtl-software.de/issues/WAWI-83252
Eigentlich ging der Worker immer, nur gestern halt nicht, warum auch immer.
Das große Problem bei mir ist dann, dass die Preise nicht mehr mit dem Shop abgeglichen werden und das passiert bei uns alle 5 min in der Wawi und der Worker sync es dann zum Shop.
Wawi hab ich die 1.10.14.3
Das umsetzen eines automatisierten Neustarts den Worker krieg ich wohl hin. Ich habe gerade eher das Problem, dass ich noch nicht weiß worauf ich triggern soll oder welche Spalten welche Werte annehmen können.
Worker.tStatus sowie Worker.tErrorlog haben zwar kZiel mit den Werten -1 oder 1. Es gäbe noch nStatus mit 3.
Aber ich denke mir, wenn der Worker abschmiert, warum auch immer, dann wird der sicherlich auch nichts mehr in den SQL schreiben.

Da wäre die Ereignisanzeige vielleicht besser um zu prüfen ob da überhaupt noch was los ist. Mein erste Ansatz wäre, wenn dort länger als 10 min keine neuen Einträge mehr kommen, dann ist ja irgendwas faul. So aus dem Bauch heraus.
 

wawi-dl

Sehr aktives Mitglied
29. April 2008
6.612
793
schau mal in die Suche, das wurde auch schon öfters mal besprochen und jemand hatte dazu auch ein Tool gebaut
 

ple

Sehr aktives Mitglied
20. August 2019
823
165
Also,
habe nun folgenden Plan, weiß aber nicht ob der aufgeht, da ich noch nicht weiß, wie sich der Worker im Fehlerfall verhält oder was in die Ereignissanzeige geschrieben wird oder was auch nicht.
Anscheinend feuert der da ja die ganze Zeit da rein.
Habe mir mal was gebaut, dass alle 2 Minuten die letzten 50 logs ausliest und den Timestamp vergleicht. Ist der größer als 8 min, dann gehe ich von einem Hänger aus. Tritt das ein, speichere ich die letzten 50 Logs mal weg um da was nachzuvollziehen.
Danach wird versucht den Service zu beenden und wieder zu starten. Ich hoffe mal, dass sich der service sich immer beenden lässt.
Wenn der Fall eintritt, lasse ich mir eben eine Telegramnachricht schicken mit den Logs usw.
Mal schauen ob das klappt.
 

NFPro

Sehr aktives Mitglied
7. Oktober 2022
116
35
Vielleicht hilft es als Hinweis. Bei mir wird ne .csv erstellt mit dem Wort Achtung drin, wenn, in diesem Fall Amazon, nicht richtig läuft, sonst schreibt er OK rein.
Danach kommt ne Powershell, der diese Datei nach dem Wort Achtung durchsucht und wenn er dies findet, startet er das Tool "Blat", welches automatisch eine Email sendet und beim eintreffen ne SMS auslöst (oder vorrangige Email)

select
(select case when ((DATEDIFF(minute,dZeitstempelUtc,getdate()) > '210')) then 'Achtung' else 'OK' end as AmazonWorker from Worker.tStatus as WorkerAmazon where WorkerAmazon.nAbgleichstyp = '1' and WorkerAmazon.nAbgleichstyp = Worker.tStatus.nAbgleichstyp ) as AmazonAbgleich,
(select case when worker.tStatus.nStatus = '4' then 'Achtung' else 'OK' end as AmazonWorker from Worker.tStatus as WorkerAmazon where WorkerAmazon.nAbgleichstyp = '1' and WorkerAmazon.nAbgleichstyp = Worker.tStatus.nAbgleichstyp ) as AmazonFehler
from
Worker.tStatus
where
Worker.tStatus.nAbgleichstyp = '1'

Solange der SQL Server an sich läuft, wird diese Abfrage auch funktionieren
 

Ähnliche Themen