erstellen Zeitplan Aufgabe ohne Cron-job
Geplante Aufgabe erstellt werden muss ist das aber nicht möglich, verwenden Sie Cron-job (ist es eine Warnung vom hosting-Anbieter, dass "das ausführen der cron-Job mehr als einmal innerhalb einer 45-Minuten-Zeitraum ist eine Verletzung Ihrer Regeln und kann dazu führen, Herunterfahren des Konto".
php-Skript (das einfügen von Daten aus txt in mysql-Datenbank) sollte jede minute ausgeführt, dh dieser link muss aufgerufen werden, http://www.myserver.com/ImportCumulusFile.php?type=dayfile&key=letmein&table=Dayfile&file=./data/Jan10log.txt
Gibt es eine andere Möglichkeit?
Sie können entweder eine einzelne cron-job alle 60 Minuten und es ausführen für 60 Minuten, auslösen Ihre Anfrage jede minute, oder nehmen Sie einen Blick auf die "armeleute-cron" - Idee, allerdings ist das nicht zuverlässig auf eine low-traffic-Seite.
InformationsquelleAutor Marko | 2014-04-12
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es gibt mehrere Möglichkeiten, tun sich wiederholende jobs. Einige der Möglichkeiten, die ich denken kann richtigen Weg sind:
Verwendung einer externen Seite wie diese das Feuer aus Ihrer url in festgelegten Intervallen
Per meta-refresh. Mehr hier. Sie würde zu haben, um die Seite zu öffnen und laufen lassen.
Javascript/Ajax aktualisieren. Ähnlich dem obigen Beispiel.
Einrichtung eines cron-job. Die meisten shared-hosting-bieten eine Möglichkeit zum einrichten von cron-jobs. Haben Sie einen Blick auf das cPanel von Ihrem hosting.
Sie müssen die Seite zu laden, um die meta/js/ajax ausgeführt werden.
Wir verwendet, um es als Startseite für den browser in der windows-server. Sie haben die Idee - es ist begrenzt.
InformationsquelleAutor Santosh Achari
wenn Sie shell-Zugriff, die Sie ausführen könnte ein php-script über die shell
etwas wie eine Endlosschleife, das wäre sleep 60 Sekunden ausführen, sammeln Müll und wiederholen, bis das Ende der Zeit.
oder Sie tun können, ein "armeleute-cron" mit ajax oder meta-refresh. ich habe es getan, bevor. im Grunde, Sie legen Sie einfach einen redirect entweder mit javascript oder html meta-refresh an den Anfang Ihres Skripts. Zugriff auf das Skript aus Ihrem browser, und lassen Sie es offen. es werde die Aktualisierung alle 60 Sekunden, genau wie bei einem cronjob.
noch eine andere Möglichkeit um einen cronjob, wäre ein bash-script wie:
alle diesem wird gesagt, werden Sie wahrscheinlich gefangen, die von der host und gekündigt bekommen sowieso.
Also beste Lösung:
gehen und melden Sie sich für ein 5-10-dollar pro Monat, vps -, und sagen Sie good bye, um shared hosting und Hallo zu deinen eigenen kleinen server.
wenn Sie dies tun, können Sie auch aufhören, beschissene php und die Nutzung facebook ' s hhvm statt und genießen Sie die tolle Leistung.
InformationsquelleAutor r3wt
Ich verstehe, dass diese Frage schon etwas alt, aber ich stolperte über es vor einer Woche mit dieser Frage und die beste und sichere Möglichkeit, die wir fanden, war über einen Web-Service.
Unserem Zusammenhang:
Wir haben unser system in den beiden shared-hosting-und private clouds.
Brauchen wir ein Skript wird aktiviert, sobald in einem Monat (es sind Pläne zu erstellen, die mehrere Zeitpläne und ermöglichen Benutzern das erstellen von einigen vordefinierten Aktionen)
Unser system bietet Zugriff auf viele clients, so dass, wenn jemand nutzt das system es fordert ein Web-Service über Ajax und kümmert sich nicht um die Antwort (nach allem, was alles protokolliert in unsere Datenbank ausgeführt werden muss, ohne Benutzer-Interaktion)
, Was wir getan haben, ist:
1 - Ein ajax-Aufruf aufgerufen Zugang in jeder größeren Bildschirm.
2 - Der Web-Dienst liest eine schedule-Tabelle, die in unserer Datenbank und ruft was auch immer braucht, ruft
3 - Zu vermeiden, viele gestapelt Web-Service-Aufrufe überprüfen wir die Zeit mit einem Intervall von 10 Minuten, bevor Sie tatsächlich irgendwelche Aktionen,
Das ist auch ein Weg, um die Last zu verteilen Gleichgewicht und die Zeitpläne keinen Einfluss auf das system mit Benutzer-Interaktion.
InformationsquelleAutor Paulo Lima
Es ist ein kostenloser service, bei
http://cron-job.org
Können Sie festlegen, bis eine nette kleine alternative.
InformationsquelleAutor Rolf Pedro Ernst
Option Ein
Einen einfachen Weg, um es zu realisieren wäre die Einrichtung einer Datei/Datenbank-Eintrag mit der Ausführungszeit von php-Skript:
Und die bei jeder Anforderung durch Ihre Besucher, die Sie überprüfen Sie die aktuelle Zeit und wenn Sie höher Sie Ihre php-Skript:
Hinweis: Es werden rarily rief auf die Sekunde genau, denn Sie wissen nicht, Wann die Ihre Besucher auf Ihre Seite (vielleicht 2 Sekunden später). Es macht also Sinn, um die neue Zeit für den nächsten Tag, der nicht durch das hinzufügen von 86400 Sekunden. Stattdessen mktime.
Option B
Dies ist ein kleines Projekt Ich erkannte in der Vergangenheit, das ist ähnlich wie @r3wt 's Idee, sondern für race-conditions und arbeitet auf die genauen Zeiten wie einen cronjob in einem scheduler ohne auf die
max_execution_time
. Und es funktioniert die meiste Zeit, ohne die Notwendigkeit, es wieder aufzubauen (wie durch die Besucher in Option A).Erklärung:
Schreibt das Skript eine lock-Datei (zur Vermeidung von race conditions) für die 15 -, 30 -, 45-und 60-Sekunde einer minute:
Jedes mal, wenn eine lock-Datei fehlt, das Skript erstellt und verwendet sleep() zu erreichen auf die Sekunde genau:
Nach dem aufwachen wieder, es sendet eine Anfrage, um sich durch fopen():
Durch, die es fordert, sich selbst unendlich und Sie sind in der Lage, zu definieren, unterschiedliche Startzeiten:
Hinweis: Es produziert bis zu 5760 Anfragen pro Tag (4 pro minute). Nicht viel, aber ein cronjob verwendet viel weniger Ressourcen. Wenn Ihr
max_execution_time
hoch genug ist, könnte man es ändern, nennt sich selbst nur einmal pro minute (1440 Anfragen/Tag).InformationsquelleAutor mgutt