Pregunta

Me pregunto si alguien tiene alguna plugins o recetas Capistrano que va a "precalentamiento" de la caché de páginas para una aplicación rieles mediante la construcción de toda la página HTML en caché en el momento del despliegue se hace, o localmente antes de que ocurra el despliegue.

Tengo algunos sitios en su mayoría estáticos que no cambia mucho, y se ejecutarán más rápido si el html ya estaba escrito, en lugar de requerir un visitante para golpear el sitio.

En lugar de crear yo mismo (parece fácil, pero es prioritario lowwwww) hace que ya existe?

¿Fue útil?

Solución

He puesto las pruebas de integración que confirman todas las principales áreas del sitio están disponibles (unos pocos cientos de páginas en total). Ellos no hacen nada que cambia los datos -. Sencillamente, presiona las páginas y formularios

Yo no corro actualmente ellos cuando despliego mi instancia de producción, pero ahora que lo mencionas - que en realidad puede ser una buena idea

.

Otra alternativa sería la de tirar de cada página que aparece en el mapa del sitio (si tiene uno, que probablemente debería). Debe ser muy fácil de escribir un guión gema / rastrillo que hace eso.

Otros consejos

Se puede usar wget u otro programa a la araña el sitio. De hecho, este tipo de escenario es mencionado como uno de los usos en su página de manual:

  

Esta opción le indica a Wget para borrar cada archivo se descarga, después de haberlo hecho. Es útil para la precarga páginas populares a través de un proxy, por ejemplo:.

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

La opción -r es para recuperar de forma recursiva, y -ND para no crear directorios.

Yo uso una tarea rastrillo que tiene este aspecto para refrescar mi página en caché del sitio todas las noches:

 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

La carga previa de esta manera - por lo general, con una tarea programada para comenzar a las 10 pm Pacífico para y terminar a las 6 am, hora del este -. Es una buena manera de equilibrar la carga de su sitio

Consulte el spider_test rieles complemento una manera simple de hacer esto en las pruebas .

Si usted va a utilizar el wget anterior, añadir el --level =, --no-padres, --wait = segundos y --waitretry = Opciones segundos para reducir tu carga, y que también podría conectarse y capturar las respuestas de cabecera para el diagnóstico o el análisis (cambiar la ruta desde / tmp si se desea):

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/'
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top