Hallo Forum,
nun ich habe jetzt meine PHP-Cronjobs fertig und überlege wie ich es am dümmsten hinbekomme das meine Hauptdatei erkennt ob sie nach einem Server neustart ausgeführt wurde.
Das Problem ist das bei einem Server-crash oder Neustart ggf. Prozesse nicht beendet wurden, und Daten in der DB als "in Bearbeitung" markiert bleiben. Dies wollte ich nun so lösen das bevor die Cronjobs wieder ganz normal laufen, eine entsprechende "reset"-Funktionen angesprochen werden welche die Datensätze wieder als "unverarbeitet" markiert.
Aktuell konnte ich es nur so lösen, das wenn die letzte Ausführung != 60 Sekunde her ist die besagte reset-funktion angesprochen wird und erst im nächsten Intervall die normale Arbeit wieder aufgenommen wird.
Eine andere und ggf. bessere Lösung, wäre die Hauptdatei in einem screen laufen zulassen, diese könnte dann die Aufgaben über eine dauer-schleife antreten (sofern es das System nicht überlasten würde weil das php Skript ja kein Ende hat).
Dann bräuchte ich aber eben eine Lösung, die beim Server start den Screen automatisch erstellt und dann die php-Datei ausführt.
Sowas in der Art brauch ich eh auch noch für den WebSocket Server.
Bin über jede Hilfe dankbar.
LG: Paykoman
Nach Serverausfall Systeme automatisch in Gang setzen...
-
- Posts: 81
- Joined: 2006-07-16 14:18
-
- Project Manager
- Posts: 11183
- Joined: 2003-02-27 01:00
- Location: Hamburg
Re: Nach Serverausfall Systeme automatisch in Gang setzen...
Stichwort: Lockfile
PayPal.Me/JoeUser ● FreeBSD Remote Installation
Wings for Life ● Wings for Life World Run
„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.
Wings for Life ● Wings for Life World Run
„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.
-
- Posts: 81
- Joined: 2006-07-16 14:18
Re: Nach Serverausfall Systeme automatisch in Gang setzen...
Das bringt mich jetzt echt ungemein weiter...
-
- Moderator
- Posts: 1235
- Joined: 2011-07-04 10:56
Re: Nach Serverausfall Systeme automatisch in Gang setzen...
Wieso?
Starte mit @reboot den Cleanup Job, prüfe ob eine .lock Datei liegen geblieben ist und räume für den Fall auf.
Das Hauptscript legt mit
LOCKFILE="/scriptname.lock"
echo $$>${LOCKFILE}
das logfile an.
Am Ende des Scripts wiederum wird es gelöscht.
Darauf lassen sich dann 2 Dinge wunderbar prüfen. 1. Ist der Lauf abgebrochen?
Also liegt die Datei noch rum, läuft noch der passende Process? Processid findet sich in der Datei.
Und hier findest Du ein Beispiel, das mit screen und reboot:
https://unix.stackexchange.com/question ... t-cron-job würde ich so nicht lösen, sondern tatsächlich, wie es Joe schon sagte, mit einem Lock file.
Starte mit @reboot den Cleanup Job, prüfe ob eine .lock Datei liegen geblieben ist und räume für den Fall auf.
Das Hauptscript legt mit
LOCKFILE="/scriptname.lock"
echo $$>${LOCKFILE}
das logfile an.
Am Ende des Scripts wiederum wird es gelöscht.
Darauf lassen sich dann 2 Dinge wunderbar prüfen. 1. Ist der Lauf abgebrochen?
Also liegt die Datei noch rum, läuft noch der passende Process? Processid findet sich in der Datei.
Und hier findest Du ein Beispiel, das mit screen und reboot:
https://unix.stackexchange.com/question ... t-cron-job würde ich so nicht lösen, sondern tatsächlich, wie es Joe schon sagte, mit einem Lock file.
02:32:12 21.12.2012 und dann sind Deine Probleme alle unwichtig.