Frage

Ich habe ein PHP-Skript auf einem gemeinsamen Webhost bekam, die von ~ 300 wählt ‚füttert‘ die 40, die nicht in der letzten halben Stunde aktualisiert haben, macht eine cURL Anfrage und liefert sie dann an den Benutzer.

SELECT * FROM table WHERE latest_scan < NOW() - INTERVAL 30 MINUTE ORDER BY latest_scan ASC LIMIT 0, 40;
// Make cURL request and process it

Ich möchte in der Lage sein zu liefern Updates wie schnell wie möglich , aber nicht will, meinen Server versinken oder den Server mir das Abrufen von (es ist nur eine Hand voll).

Wie oft soll ich den Cron-Job ausführen, und soll ich die Anzahl der Abrufe pro Lauf begrenzen? Um wie viele?

War es hilfreich?

Lösung

Es wäre eine gute Sache sein, „Rate“, wie oft jeder Feed so tatsächlich ändert, wenn etwas eine durchschnittliche Zeit von 24 Stunden pro Wechsel hat, dann holen Sie nur alle 12 Stunden ist.

speichern Nur #changes und # try ist und holen Sie überprüfen müssen ... Sie das Skript jede Minute laufen und lassen Sie einige Statistiken den Rest!

Andere Tipps

Auf einem gemeinsamen Host könnten Sie auch in Skriptlaufzeit Probleme laufen. Zum Beispiel, wenn Ihr Skript läuft länger als 30 Sekunden kann der Server beenden. Ist dies der Fall für die Gastgeber ist, möchten Sie vielleicht einige Tests / Protokollierung tun, wie lange es dauert jedes Futter zu verarbeiten und dies zu berücksichtigen, wenn Sie herausfinden, wie viele Feeds, die Sie in der gleichen Zeit verarbeiten soll.

Eine andere Sache, die ich tun musste, um dieses Problem beheben war die „letzte Abtastung“ markieren, wie aktualisiert vor Ich verarbeitet jede einzelne Anfrage, so dass ein Problem Futter nicht abgeholt scheitern und werden weiterhin für jeder cron laufen. Falls gewünscht, können Sie den Eintrag wieder bei einem Fehler aktualisieren und einen Grund angeben (falls bekannt), warum trat das Versagen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top