Domanda

Mi chiedo se qualcuno ha qualche plugin o ricette Capistrano che si "pre-calore" la cache di pagina per un app rotaie con la costruzione di tutta la pagina html cache al momento della distribuzione è fatta, o localmente prima della distribuzione accade.

Ho alcuni siti per lo più statici che non cambiano molto, e sarebbe correre più veloce se l'HTML è stato già scritto, invece di richiedere un visitatore di colpire il sito.

Invece di creare questo me stesso (sembra facile, ma la priorità lowwwww) fa già esiste?

È stato utile?

Soluzione

Ho impostato test di integrazione che confermano tutte le principali aree del sito sono disponibili (qualche centinaio di pagine in totale). Non fanno nulla che cambia i dati -. Basta tirare indietro le pagine e le forme

Io attualmente non correre quando schiero la mia istanza di produzione, ma ora si parla di essa - si può effettivamente essere una buona idea

.

Un'altra alternativa sarebbe quella di tirare ogni pagina che compare nel vostro sito (se ne avete uno, che probabilmente dovrebbe). Dovrebbe essere molto facile scrivere uno script gemma / rake che lo fa.

Altri suggerimenti

Si può usare wget o un altro programma al ragno il sito. In realtà, questo tipo di scenario è menzionato come uno degli usi nella sua pagina di manuale:

  

Questa opzione dice a Wget di cancellare ogni singolo file viene scaricato, dopo averlo fatto. È utile per prelettura pagine popolari attraverso un proxy, per esempio:.

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

L'opzione -r è quella di recuperare in modo ricorsivo, e -nd di non creare directory.

Io uso un compito rastrello che assomiglia a questo per aggiornare la mia pagina memorizzata nella cache del sito ogni notte:

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

http://gist.github.com/122738

precarico questo modo - in generale, con un lavoro cron iniziare alle 22:00 Pacific per e terminare alle 6 del mattino ora della costa orientale -. È un bel modo per bilanciare il carico tuo sito

Controlla la spider_test rotaie plug di un modo semplice per fare questo in fase di test .

Se avete intenzione di utilizzare il wget sopra, aggiungere il --level =, --no-parent, --wait = secondi e --waitretry = Opzioni SECONDI strozzare il vostro carico, e si potrebbe anche accedere e catturare le risposte di intestazione per la diagnosi o analisi (modificare il percorso da / tmp se desiderato):

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/'
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top