Hallo,
ich habe einen Cronjob der viel Arbeit zu erledigen hat.
Der Cronjob wird jede Minute auf dem Server ausgeführt, er prüft ob etwas zu bearbeiten ist.
Wenn er jedoch einmal läuft, läuft er mindestens 1 Minute oder länger, somit würde ja 1 Minute darauf der Cronjob schon wieder beginnen und so könnte es passieren das synchron Datensätze doppelt bearbeitet werden, was keinesfalls passieren darf.
Es gäbe folgende Möglichkeit: Ich trag beim Starten des Cronjobs in eine Tabelle ein das er arbeitet, und sobald er fertig ist setzt er diesen Wert wieder auf 0. Beim Start des Scriptes wird geprüft ob bereits der Cronjob läuft oder nicht.
Doch was wenn der Cronjob aufgrund z.B. zu langer Laufzeit abbricht? Dann würde er sich ja selbst nicht mehr ausführen, weil der Wert nicht mehr auf 0 gesetzt wurde.
Oder gibt es die Möglichkeit per PHP abzufragen, ob ein Script gerade läuft oder nicht?
Danke,
Chris
ich habe einen Cronjob der viel Arbeit zu erledigen hat.
Der Cronjob wird jede Minute auf dem Server ausgeführt, er prüft ob etwas zu bearbeiten ist.
Wenn er jedoch einmal läuft, läuft er mindestens 1 Minute oder länger, somit würde ja 1 Minute darauf der Cronjob schon wieder beginnen und so könnte es passieren das synchron Datensätze doppelt bearbeitet werden, was keinesfalls passieren darf.
Es gäbe folgende Möglichkeit: Ich trag beim Starten des Cronjobs in eine Tabelle ein das er arbeitet, und sobald er fertig ist setzt er diesen Wert wieder auf 0. Beim Start des Scriptes wird geprüft ob bereits der Cronjob läuft oder nicht.
Doch was wenn der Cronjob aufgrund z.B. zu langer Laufzeit abbricht? Dann würde er sich ja selbst nicht mehr ausführen, weil der Wert nicht mehr auf 0 gesetzt wurde.
Oder gibt es die Möglichkeit per PHP abzufragen, ob ein Script gerade läuft oder nicht?
Danke,
Chris
Kommentar