2011-01-11 9 views
8

Cron-Jobs sind auf meinem Server geschlossen und der Serveradministrator akzeptiert das Öffnen nicht. Weil, Cron-Jobs Server usw. verlangsamen. Also brauche ich eine Alternative.Gibt es Cron Jobs Alternative?

Ich muss alle 2 Minuten eine PHP-Datei (cron.php) ausführen.

Also, wie kann ich das tun?

+1

Ist 'cron.php' von einem Web serviert Server oder ich S ist es nur ein lokales Skript? –

+4

Die kurze Antwort ist es, einen besseren Host zu bekommen ... – ircmaxell

+0

@Jesse, es wird von einem Webserver bedient und mit einem Browser erreichbar – Eray

Antwort

2

Hängt von Ihrem Zugriff auf die Box ab.

PHP selbst wird nicht in der Lage sein, so gut eigenständig zu laufen. Sie könnten ein Skript erstellen, das versucht, die Ausführungszeit ständig zu erhöhen, zu schlafen und regelmäßig nach neuen Jobs zu suchen. Dies ist jedoch nicht optimal, da Sie einmal über den Browser darauf zugreifen müssen und das Skript sicherstellen muss, dass es nur einmal ausgeführt wird.

Mit Shell-Zugriff können Sie das PHP-Skript auf der Shell ausführen, die verhindern würde, dass es von der Öffentlichkeit aufrufbar ist und es über den Webbrowser ausführen muss.

Mit Shell-Zugriff können Sie auch ein Programm ausführen, das einen (Cron) -Service für Sie bereitstellt. Sei es ein Java, Python oder ein anderes Programm.

Cron-Jobs sollten den Server nicht immer verlangsamen. Das hängt von dem Job ab, der ausgeführt wird. Wenn es Ihre Jobs sind, die so teuer sind, wird Ihr Admin wahrscheinlich nicht in Ordnung sein mit den geschlossenen Cron-Jobs zu arbeiten und den Server sowieso wieder zu verlangsamen und kann weitere Maßnahmen ergreifen, um Sie daran zu hindern, herumzuärgern.

1

Abonnieren Sie einen (kostenlosen) Website-Überwachungsdienst und planen Sie Ihre [url] /cron.php ein. Sie können festlegen, dass Ihre Webseitenseite eine sinnvolle Nachricht zurückgibt, und den Überwachungsdienst so konfigurieren, dass Sie über diese Antwort benachrichtigt werden.

-2

Wenn Sie viele Besucher hatten, schreiben Sie einfach in die Datenbank beim letzten Besuch, und wenn Nest Zeit mehr Zeit benötigt - führen Sie Cron. Aber eigentlich - finde neues Hosting.

7

Auch wenn die Frage vor einer Weile geschrieben wurde, ich hatte gerade das gleiche Problem, aber eine Lösung (basierend auf Kissaki's answer, danke!) Gefunden und dachte, ich poste würde Hier für alle, die noch nach einer möglichen Lösung suchen.

Voraussetzungen:

  • SSH-Zugang
  • Python

-Code (Python):

from subprocess import call 
import time 
while True: 
    call(["php","cron.php"]) 
    time.sleep(120) 
+0

Das ist ziemlich ordentlich! Danke für das Teilen! – Yavor

+0

Also muss ich das Python-Skript einmal über ssh aufrufen? –

+0

Korrekt. Wenn Sie Unterstützung für "Bildschirm" haben, können Sie dies auch im Hintergrund tun. – DaJF