Frage

Ich frage mich, ob jemand irgendwelche Plug-Ins oder Capistrano Rezepte hat das wird „Vorheizen“ der Seiten-Cache für eine Rails-Anwendung durch die Bereitstellung alle auf der Seite im Cache gespeicherte HTML zu der Zeit bauen wird oder lokal vor der Bereitstellung geschieht.

Ich habe einige meist statische Websites, die nicht viel ändern, und würde schneller laufen, wenn die HTML bereits geschrieben wurden, sondern einen Besucher zu erfordern, die Website zu treffen.

Anstatt diese selbst zu erstellen (scheint einfach, aber es lowwwww Priorität) ist es bereits vorhanden ist?

War es hilfreich?

Lösung

Ich habe Integrationstests festgelegt, dass alle wichtigen Bereiche der Website bestätigen stehen zur Verfügung (ein paar hundert Seiten insgesamt). Sie tun nichts, die Daten verändert -. Nur die Seiten nach hinten ziehen und Formen

ich zur Zeit nicht, sie laufen, wenn ich meine Produktions Instanz bereitstellen, aber jetzt erwähnen Sie es - es wirklich eine gute Idee sein kann

.

Eine andere Alternative wäre, jede Seite zu ziehen, die in Ihrer Sitemap erscheint (wenn Sie eine haben, die Sie wahrscheinlich sollte). Es sollte einfach ein Juwel / Rake-Skript zu schreiben, die das tut.

Andere Tipps

Sie könnten wget oder ein anderes Programm verwenden, um die Website zur Spinne. In der Tat, diese Art von Szenario wird als eine der Verwendungen in seiner Hand-Seite erwähnt:

  

Diese Option weist Wget jede einzelne Datei lädt es zu löschen, nachdem so getan zu haben. Es ist nützlich für Prefetching beliebte Seiten über einen Proxy, z.

   wget -r -nd --delete-after http://whatever.com/~popular/page/
     

Die Option -r rekursiv abzurufen, und -nd nicht Verzeichnisse erstellen.

Ich verwende eine Rake Aufgabe, die wie folgt aussieht meine Seite Sitemap jede Nacht im Cache gespeichert aktualisieren:

 require 'action_controller/integration'
 ActionController::Base::expire_page("/sitemap.xml")   
 app = ActionController::Integration::Session.new
 app.host = "notexample.com"
 app.get("/sitemap.xml")

Siehe http://gist.github.com/122738

im Voraus lädt auf diese Weise - in der Regel mit einem Cron-Job um 10 Uhr Pacific zu beginnen zu und um 6 Uhr morgens Ostküstenzeit zu beenden -. Ist eine schöne Möglichkeit, Ihre Website zu Lastenausgleich

Überprüfen Sie die spider_test Schienen-Plugin für eine einfache Möglichkeit, dies in Tests zu tun .

Wenn Sie vorhaben, die wget oben zu verwenden, fügen Sie den --level =, --no-Eltern, --wait = SEKUNDEN und --waitretry = SEKUNDEN Optionen, um Ihre Last zu drosseln, und man könnte genauso gut einloggen und erfassen die Kopf Antworten für die Diagnose oder Analyse (ändern Sie den Pfad aus / tmp falls gewünscht):

wget -r --level=5 --no-parent --delete-after \
  --wait=2 --waitretry=10  \
  --server-response        \
  --append-output=/tmp/spidering-`date "+%Y%m%d"`.log
  'http://whatever.com/~popular/page/'
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top