in einfache Worte fassen: Ich schreibe PHP-Skripte, die SMS senden und empfangen. Skripte berechnen, dass sie jede Woche Kampagnen-SMS an Benutzer senden, basierend auf jedem Benutzerregistrierungsdatum, z. B. jeden Montag 10 Uhr, SMS an Herrn senden. A und schickt jeden Freitag um 19 Uhr eine SMS an Miss B.. und PHP-Skripte kümmern sich um alles Notwendige..
Problem : Offensichtlich ist es eine sehr lustige Möglichkeit, dass jemand die Hauptseite meiner Anwendung etwa alle paar Sekunden aktualisiert, um weiter berechnen und verstehen zu können, was und wann Jobs zu erledigen sind, oder dass die Hauptseite immer auf meinem Computer geöffnet ist, also Javascripts und jquery erledigt den Rest!
Meine Frage : wie kann ich mein php programm oder scripte so etwas wie wach machen ohne das jemand die hauptseite auffrischen oder öffnen muss? Mit wach meine ich, wie es den nächsten Plan erkennt und ausführt und so weiter.
einige rohe Ideen zu beantworten : Vielleicht könnte ich alle 10 Sekunden die Hauptseite mit Ajax oder Curl aufrufen .. aber ich weiß nicht, wie ich Ajax oder Curl überhaupt wecken soll ..
Ich sehe einige Internet-Beiträge, die so etwas wie eine Befehlszeile entweder in Linux, Unix oder Windows vorschlagen. Aber ich greife normalerweise auf den Host zu, nicht auf die Befehlszeile, richtig? oder die Befehlszeile ist etwas im Host und ich weiß es nicht, wenn ja, helfen Sie mir bitte.
wichtiges Beispiel : Es gibt PHP-WP-Plugins wie Total Cache und Supper Cache, die scheinbar immer aktiv sind und von Zeitplänen wach sind, ohne dass jemand eine Seite aktualisieren muss.
Bitte geben Sie möglichst alle Antworten in PHP und PHP-Familien. Ich kenne Unix oder diese Art von Programmierung überhaupt nicht.
——- laut Antworten einige Fortschritte bei der Frage gemacht. Jetzt habe ich dieses folgende Skript:
ignore_user_abort(true);
set_time_limit(0);
$data = file_get_contents('filename.txt');
$data = $data+1;
file_put_contents('filename.txt', $data);
$page = $_SERVER['PHP_SELF'];
$sec = "4";
header("Refresh: $sec; url=$page");
Es klappt! auch wenn ich den lokalen Host neu starte. Das Hauptproblem ist jetzt, als ich die Hauptseite schloss, hörte es auf, in filename.txt zu inkrementieren, und wenn die Seite zwei Instanzen erneut anfing, wo das Inkrement fortgesetzt wurde, also: sollte es nicht weiter inkrementieren, auch wenn ich die Seite schließe? und wie stoppe ich es? und ist es normal, dass mehr als eine Instanz der Seite im Hintergrund ausgeführt wird?
endlich : Gemäß den Anweisungen auf dieser Seite ist es am besten, wenn ich eine Starter- oder Neuladeseite erstelle, dann Befehle verwende, um diese Neuladeseite zum Beispiel alle 1 Minute zu initiieren, und dann wie gewohnt PHPs schreibe.
last not least: Wie stoppt man dieses Hintergrundskript? für Update oder Wartung ..
Sie könnten immer CRON verwenden.
– Jay Blanchard
4. Januar 2017 um 13:37 Uhr
crontab verwenden. Erstellen Sie mehrere Cron-Jobs und geben Sie die Zeit in den Skripten an, indem Sie Parameter übergeben, etwa so ajax.php?sms=seven . Und die andere ajax.php?sms=ten
– Rafael Shkembi
4. Januar 2017 um 13:39 Uhr
Was ist CRON? ist es wie in PHP-Seiten geschrieben? und mehr, sagen wir, PHP berechnet die Zeit von sms=seven und die Zeit von sms=ten, die gesendet werden sollen, und liefert diese Zeiten vielleicht an CRON, richtig? wie startet CRON dann? läuft es immer auf normalen PHP-Servern?
– Shahram Mohseni
4. Januar 2017 um 13:54 Uhr