Nach Serverausfall Systeme automatisch in Gang setzen...

Alles was in keine andere Systemkategorie passt
paykoman
Posts: 81
Joined: 2006-07-16 14:18
 

Nach Serverausfall Systeme automatisch in Gang setzen...

Post by paykoman »

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
User avatar
Joe User
Project Manager
Project Manager
Posts: 11183
Joined: 2003-02-27 01:00
Location: Hamburg
 

Re: Nach Serverausfall Systeme automatisch in Gang setzen...

Post by Joe User »

Stichwort: Lockfile
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings 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.
paykoman
Posts: 81
Joined: 2006-07-16 14:18
 

Re: Nach Serverausfall Systeme automatisch in Gang setzen...

Post by paykoman »

Das bringt mich jetzt echt ungemein weiter...
ddm3ve
Moderator
Moderator
Posts: 1235
Joined: 2011-07-04 10:56
 

Re: Nach Serverausfall Systeme automatisch in Gang setzen...

Post by ddm3ve »

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.
02:32:12 21.12.2012 und dann sind Deine Probleme alle unwichtig.