PHP Starten Cronjob, wenn anderer fertig?

FrazeColder

Lt. Commander
Registriert
Okt. 2013
Beiträge
1.718
Moin zusammen,

ich habe eine Reihe an Cronjobs welche ich gerne ausführen würde. Dies allerdings hintereinander und das direkt hintereinander. Da ist aber mein Problem. Ich habe unter den Cronjobs leider keine Verbindung direkt. Das heißt, ich muss irgendwie erkennen, ob ein Cronjob fertig ist.

Da habe ich mir gedacht, man könnte beispielsweise am Ende eines Cronjobs in ein Textfile schreiben "Cronjob #2 220" oder so. Und das ist dann der Anstoß für Cronjob #3, welcher dann auch wieder das mit Code 220 beendet. Nun zwei Fragen:

1. Wie kann ich das überprüfen, ohne dauernd mit while das File nach "Cronjob #2 220" abzusuchen. Gibt es sowas wie eine Methode, die darauf lauscht, ob ins File was geschrieben wurde?

2. Gibt es einen besseren Weg?

MfG und Vielen Dank! :D
 
Machs dir doch einfacher, starte am ende von jedem script einfach mit fork oder shell_exec das nächste^^

nur so als idee :D
 
Wieso so kompliziert: alle Jobs in ein einzelnes Skript schreiben. Oder alles Skripte nacheinander in einem übergeordneten Skript abarbeiten. Dafür einen cronjob und fertig.
 
naja, ein cronjob steht im crontab auch nur wie eine regulaere kommandozeile in der shell. dementsprechend kannst du per "befehl1; befehl2" zwei befehle hintereinander ausfuehren. alternativ && statt ;, wenn du den zweiten nur im falle eines erfolgreichen ersten befehls ausfuehren willst.
 
Ja, ich will mir ja ein Cronjob Skript anlegen, was alle anderen Cronjobs nacheinander abarbeitet. Aber wie bemerke ich, ob der eine Job fertig ist, um eben den nächsten zu starten?
 
FrazeColder schrieb:
Ja, ich will mir ja ein Cronjob Skript anlegen, was alle anderen Cronjobs nacheinander abarbeitet. Aber wie bemerke ich, ob der eine Job fertig ist, um eben den nächsten zu starten?
Ähm WTF? Die Antworten hast Du aber schon gelesen, oder?

Im Kern geht es darum, dass man eben nicht mehrere CRON-Jobs macht, sondern nur einen. Und der stößt ein oder mehrere Skripte an, so dass eben immer sichergestellt ist, dass die späteren Jobs erst dann los gehen, wenn der Vorherige erledigt ist.

Oder meinst Du das jetzt irgendwie, falls Du die CRON-Jobs die Du hast mal außer der Reihe anstoßen musst?
Was aber auch nix an der prinzipiellen Vorgehensweise ändert. Nämlich die CRON-Jobs zu konsolidieren, wenn sie eh voneinander abhängig sind.
Außerdem ist ein Blick auf anacron wert.

Falls ich Dich jetzt immer noch nicht verstanden hab, dann beschreib' doch mal Dein Problem an einem konkreten Beispiel, damit jeder das nachvollziehen kann.

Und werd' Dir bei der Gelegenheit über den Begriff CRON-Job klar.

CRON ist zunächst einmal ein Programm was ständig läuft und eigentlich nix macht, als angegebene Programme/Skripte zu einer angegebenen Zeit auszuführen. Also nicht irgendwie das Skript oder das Programm ist der CRON-Job, sondern die Einheit von:
konkreter Zeit + konkretes Skript/Programm.
 
Zuletzt bearbeitet:
Zurück
Oben