Automatisches Script ala Cronjob

querytail

Erfahrenes Mitglied
Hallo zusammen,

ich habe ein PHP-Script und möchte dieses gerne automatisch, d.h. nach einer bestimmten Zeit, ausführen lassen.

Da ich keinen Cronjob anlegen kann und kein Zugriff von fremden Servern erlaubt ist, muss ich auf PHP-Basis eine Lösung finden.

Gibt`s da eine Möglichkeit oder gar ein Tutorial?

Vielen Dank.

Grüße

Michael Meyer

PS: Dieses Thema wurde schon des öfteren angesprochen, eine richtige Lösung konnte ich allerdings nicht finden.
 
Normalerweise gibt es dafür nur den Cronjob, zumindest mir bekannt.
Aber es gibt noch Alternativen, dazu wäre interessant zu wissen ob du vollen Zugriff auf den Server hast, d.h. evtl. Prozesse einrichten kannst und welches OS auf dem Server ist.
 
Was ich mich halt frage:

Für z.B. Online-Shops werden verschiedene Module angeboten, die mit solchen Automatismen arbeiten. Diese laufen ja auch auf nem ganz normalen Hosting-Paket. Dann muss es dafür doch eine Lösung geben.
 
Ja, die Module arbeiten meist mit einem Timestamp, wann sie ausgeführt werden sollen. Besucht nun jemand die Seite wird geprüft, ob eine der Aktionen ausgeführt werden soll, falls ja, wird es ausgeführt. Falls nicht, passiert halt nichts. Und wenn niemand die Seite besucht, werden sie auch nicht ausgeführt.
 
Wie gesagt, soweit mir bekannt und ich bin dafür nicht unbedingt eine Referenz.

Hab jetzt auch noch mal ein bisschen google bemüht und da wird nur zu der Alternative an die ich denke gedacht oder eben Cronjobs.

Wie das mit Onlineshops aussieht kann ich dir nicht sagen, würde mich aber mal anhand eines Beispiels interessieren was du genau meinst.

Grundsätzlich wird aber viel durch den User durchgeführt, bzw. durchzuführen sein.
Ich könnte mir sehr gut vorstellen dann eben mit einer Ausführungssperre zu arbeiten, d.h. wenn ein User das Script schon ausgeführt hat, kann es 24h (als Beispiel) nicht mehr ausgeführt werden, also der nächste Besucher der 5 min später auf die Seite kommt, führt das Script eben nicht mehr aus.
 
Wie funktioniert denn das mit einem TimeStamp?

Heißt das, dass das Script irgendwo included wird und nur bei Aufruf in einer gewissen Zeitspanne ausgeführt wird?

Wie sieht denn sowas aus?
 
Du nimmst halt ein Skript, nennen wir es mal cronjob.php.

Pseudocode
PHP:
if($lastExecution < (time() - 3600))
{
  // execution
}

Die letzte Ausführungszeit müsstest du halt speichern, z. B. in einer Textdatei oder in der Datenbank. Du prüfst ob diese Zeit länger her ist, als die aktuelle Zeit abzüglich deiner Ausführungsspanne, im Beispiel eine Stunde, und falls ja, führst du deinen Code aus.
 
OK, also bin ich so immer davon abhängig, dass jemand die Seite besucht.

Nun habe ich gelesen, dass es komfortabler mit cURL möglich sein soll. Eine Lösung habe ich allerdings nicht gefunden. Kann mir jemand verraten, wie das funktioniert? Da muss ja dann ständig was aktiv sein und die Uhrzeit abrufen.
 
Mit nem externen Cronjobdienstleister sollte es doch gehen.

Deren Script macht nichts anderes als Deine (eine) Seite zu besuchen. In dieser Seite baust Du den php-code entsprechend ein...

Dies geht allerdings nur wenn es eine Seite im www ist. Das war aus Deiner Aussage "kein Zugriff von fremden Servern erlaubt" nicht ganz eindeutig herauszulesen!
 
Zurück