Wie kann ich PHP-script in einem bestimmten Intervall (z.B. einmal pro Tag)?
Ich habe ein php-script liest eine Datei über http(die Datei ist auf der anderen domain). Ich möchte diese Datei zu Lesen, die nur einmal oder zweimal am Tag, anstatt zu verbinden, um es jedes mal, wenn die website aktualisiert wird.
Gibt es eine andere Möglichkeit als es zu tun mit cron?
Ich will nicht mit cron benutzen, Ursache, die ich bevorzuge, um das setup dieses Verhalten in das Skript selbst .. so ist es flexibel, so dass ich es überall benutzen kann, ohne einrichten cron jedes mal.
Dank
InformationsquelleAutor Adriana | 2009-05-14
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie nicht können oder nicht wollen, verwenden Sie cron verwenden und es ist ok, um es zu aktualisieren, nur wenn die Seite aufgerufen wird. Sie konnte cache das Ergebnis der HTTP-Anfrage und nur zu aktualisieren, auf eine Seite zu laden, wenn der cache älter als ein Tag oder was auch immer Intervall, das Sie wählen.
APC ist ein Weg, um eine schnelle in-memory-cache, aber nicht der einzige Weg. Es gibt memcached, wenn Sie wollen in der Lage sein zu verteilen cache über mehrere Maschinen. Alternativ können Sie legen Sie einfach eine Kopie der DB und nicht bringen Sie in keine neuen Technologien.
Der einfachste Weg zum cache die Dinge sein sollten, die Verwendung von PHP ' s built-in output buffering Funktionen. (php.net/manual/en/function.ob-start.php)
InformationsquelleAutor Alo
Ich getan habe, diese Art der Sache in der Vergangenheit, wenn ich nicht Zugriff auf cron:
Aber Sie haben, führen Sie den obigen code in Intervall-Recht? Ich meine, man sollte irgendwie halten die überprüfung der Differenz zwischen der aktuellen Zeit und lastRun. Wie tun Sie, dass die w/o-cron?
Sie können Ihre Website-Besucher zu starten, oder rufen Sie es von einem anderen system haben Sie Zugriff auf cron, etc.
InformationsquelleAutor cOle2
Können Sie auch Web-Basierte Cron wenn Sie möchten, schlagen Sie eine Seite auf einem festgelegten Intervall.
InformationsquelleAutor Sheraz
Könnten Sie sogar mit einem Datenbank-Tabelle - wirklich einfach in der Struktur, id, Datum, Skript-url, und was auch immer Sie benötigen, und fügen Sie eine Zeile hinzu jedes mal, wenn Sie das Skript ausführen.
Dann, bevor Sie das Skript ausführen, aktivieren Sie einfach die zahlen der Zeile für jeden Tag, die Sie haben.
InformationsquelleAutor Strae
Können Sie eine Cronjob. Sie können dann führen Sie das php-Skript von der Befehlszeile.
Den Cronjob wäre das folgende, wenn Sie jeden Tag aktualisieren.
InformationsquelleAutor Eldila
Da Sie explizit erklären, dass Sie nicht möchten, dass cron verwenden, die einzige andere Möglichkeit, dies zu tun (ohne etwas Analog zu cron) ist eingerichtet, Ihr Skript als daemon. Allerdings, wenn Sie wirklich brauchen, die Flexibilität, die Dämonen geben, cron ist sehr viel leichter und einfacher.
Hier ist eine daemon-walk-through.
InformationsquelleAutor scotts
Wenn du mit einer Linux-Distribution mit systemd:
Hatte ich das Bedürfnis für die Einplanung von jährlichen Arbeitsplätze, unabhängig von der Anwendung (im Fall das system neu gestartet oder etwas ähnliches), und ich erhielt den Vorschlag,systemd Timer. Der Bogen Wiki-Seite auf es gibt einige Beispiele.
InformationsquelleAutor Abdul
Wenn man auf einem *nix-Umgebung, die Sie verwenden können, cron-jobs
InformationsquelleAutor andi
Was ist falsch mit cron?
Haben Sie ein paar Entscheidungen, die sich mit cron - php kann aufgerufen werden, indem der Kommandozeile PHP-interpreter, oder verwenden Sie wget oder fetch-oder dem Gegenwert aufrufen, PHP auf dem server.
Im Allgemeinen, PHP ausführen aus dem Kontext der web-server hat eine zeitliche Begrenzung auf wie lange Sie es ausführen können, so allgemein kann man das nicht einrichten "hintergrund" PHP-threads, um Dinge zu tun "später".
InformationsquelleAutor nsayer