“Warm Up Cache” sulla distribuzione
-
23-08-2019 - |
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?
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")
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/'