Pergunta

Eu estou querendo saber se alguém tem alguma plugins ou Capistrano receitas que o cache de página "heat-pré" para um app Rails através da construção de toda a página em cache html no momento da implantação é feita, ou localmente antes da implantação acontece.

Eu tenho alguns sites principalmente estáticos que não mudam muito, e seria executado mais rapidamente se o html já estava escrito, em vez de exigir um visitante para bater o site.

Ao invés de criar isso sozinho (parece fácil, mas lowwwww prioridade) é que já existem?

Foi útil?

Solução

Tenho definir testes de integração que confirmam todas as principais áreas do site estão disponíveis (algumas centenas de páginas no total). Eles não fazer nada que as alterações de dados -. Apenas puxar para trás as páginas e formulários

Eu não atualmente executá-los quando eu implantar o meu instância de produção, mas agora você mencioná-lo -. Ele pode realmente ser uma boa idéia

Outra alternativa seria a puxar cada página que aparece no seu mapa do site (se você tiver um, o que você provavelmente deve). Deve ser muito fácil escrever um script gem / rake que faz isso.

Outras dicas

Você pode usar wget ou outro programa para rastrear o site. Na verdade, este tipo de cenário é mencionado como um dos usos em sua página de manual:

Esta opção diz Wget para apagar todos os arquivos ele baixa, depois de ter feito isso. É útil para pré-busca páginas populares através de um proxy, por exemplo:.

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

A opção -r é recuperar de forma recursiva, e -nd para não criar diretórios.

Eu uso uma tarefa rake que se parece com isso para refrescar minha página em cache mapa do site todas as noites:

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

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

O pré-carregamento desta maneira - geralmente, com um trabalho cron para começar às 22:00 Pacific e denunciar às 6h, hora do Leste -. É uma boa maneira de load-equilibrar o seu site

Confira o spider_test rails plugin de uma maneira simples de fazer isso em testes .

Se você estiver indo para usar o wget acima, adicione o --level =, --no-parent, --wait = segundos e --waitretry = segundos opções para estrangular a sua carga, e assim como você pode fazer logon e capturar as respostas de cabeçalho para o diagnóstico ou análise (alterar o caminho de / tmp se desejar):

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 em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top