Eine PHP Datei zyklisch laufen lassen?
Kerstin21
- php
0 Zerko0 dedlfix
0 Sven Rautenberg
Hallo zusammen,
ich benötige so eine Art PHP Job. Es soll eine PHP Datei zyklisch laufen, z.B. alle 5 Minuten. Geht das? Oder muß ich mich da eher meinen Linux OS zuwenden und ein Skript einrichten, welches zyklisch alle 5 Minuten die PHP Datei aufruft?
Danke
Du könntest das PHP Script als rekursive Funktion programmieren und vor Aufruf der Reskursiv eine Verzögerung ausführen.
Die Verzögerung kann mit "void usleep ( int $micro_seconds )" realisiert werden. Das Problem: das Script muss aktiv sein, d.h. im Browser geöffnet sein, um ausgeführt zu werden.
Ansonsten kann man in PHP das gleiche Prinzip "vielleicht" als Hintergrundprozess realisieren... Meine letzte Info dazu ist, dass man Threads nicht mit PHP machen kann, aber vielleicht funktioniert dies in zwishcen schon?!
GRuß,
Zerko
Hallo zusammen,
ich benötige so eine Art PHP Job. Es soll eine PHP Datei zyklisch laufen, z.B. alle 5 Minuten. Geht das? Oder muß ich mich da eher meinen Linux OS zuwenden und ein Skript einrichten, welches zyklisch alle 5 Minuten die PHP Datei aufruft?
Danke
Du könntest das PHP Script als rekursive Funktion programmieren und vor Aufruf der Reskursiv eine Verzögerung ausführen.
Funktioniert eine "unendliche" Rekursion überhaupt? Da werden doch Werte gespeichert für den Rücksprung, der nie erfolgt. Und irgendwann müsste auch der größte Speicher platzen.
LG Kalle
echo $begrüßung;
Du könntest das PHP Script als rekursive Funktion programmieren und vor Aufruf der Reskursiv eine Verzögerung ausführen.
Funktioniert eine "unendliche" Rekursion überhaupt? Da werden doch Werte gespeichert für den Rücksprung, der nie erfolgt. Und irgendwann müsste auch der größte Speicher platzen.
Eine Rekursion ist an der Stelle nicht sinnvoll. Gemeint war vermutlich nur eine einfache Endlosschleife.
echo "$verabschiedung $name";
echo $begrüßung;
ich benötige so eine Art PHP Job. Es soll eine PHP Datei zyklisch laufen, z.B. alle 5 Minuten. Geht das?
Du kannst auch ein Script schreiben, das in einer Endlosschleife eine Funktion aufruft und dann 5 Minuten schläft. Ein Browser zum Aufrufen ist dabei nicht erforderlich, denn PHP und -Scripte kann man ja auch so laufen lassen. Das Problem an dieser Lösung ist, dass du einen Absturz erkennen musst, um es nach Ursachenbeseitigung wieder zu starten. Außerdem muss es im Hintergrund laufen, wenn nicht ständig ein Nutzer angemeldet sein soll. Du brauchst also einige Erfahrung im Umgang mit deinem Betriebssystem.
Oder muß ich mich da eher meinen Linux OS zuwenden und ein Skript einrichten, welches zyklisch alle 5 Minuten die PHP Datei aufruft?
Ein Cronjob tät reichen. Der muss im Prinzip nur konfiguriert werden.
Da der Cron dafür sorgt, dass das Script zu den festgelegten Zeiten aufgerufen wird, ist ein Absturz nicht so wild. Vermutlich bringt es aber auch nicht allzuviel, wenn der cron das Script immer wieder aufruft, ohne dass die Absturzursache beseitigt ist. Auch hier brauchst du also eine Information, wenn irgendwas unerwartet verläuft.
echo "$verabschiedung $name";
Moin!
ich benötige so eine Art PHP Job. Es soll eine PHP Datei zyklisch laufen, z.B. alle 5 Minuten. Geht das? Oder muß ich mich da eher meinen Linux OS zuwenden und ein Skript einrichten, welches zyklisch alle 5 Minuten die PHP Datei aufruft?
Wieso ein Extra-Skript? PHP ist doch schon eine Skriptsprache, und die kann man auch problemlos auf der Kommandozeile ausführen lassen - und ebenso als Programm in einem Cronjob.
Der einzige (durchaus positive) Unterschied: PHP auf der Kommandozeile hat keine Laufzeitbeschränkung, und man muß kein HTML ausgeben, sondern kann sich beim "echo" auf nackten Text beschränken. Die Textausgabe erscheint dann halt nicht in irgendeinem Browser, sondern in der Shell.
- Sven Rautenberg
Hallo Sven,
Der einzige (durchaus positive) Unterschied: PHP auf der Kommandozeile hat keine Laufzeitbeschränkung,
Jain. Man kann auch für CLI-PHP ein time_limit festlegen, das wird nur häufig nicht gemacht.
Viele Grüße,
Christian