部署时"预热缓存"

Sco*_*ler 18 ruby deployment caching capistrano ruby-on-rails

我想知道是否有人有任何插件或capistrano配方,通过在部署时构建所有页面缓存的html或在部署发生之前本地"预热"rails应用程序的页面缓存.

我有一些大多数静态网站没有太大变化,如果已经编写了html,它会运行得更快,而不是要求一个访问者访问该网站.

而不是自己创建(似乎很容易,但它优先级低)它是否已经存在?

小智 18

您可以使用wget或其他程序来蜘蛛网站.实际上,这种情况被称为其手册页中的一种用法:

此选项告诉Wget在完成后删除它下载的每个文件.通过代理预取热门页面非常有用,例如:

   wget -r -nd --delete-after http://whatever.com/~popular/page/
Run Code Online (Sandbox Code Playgroud)

-r选项是递归检索,而-nd是不创建目录.


Ric*_*chH 2

我已经设置了集成测试,以确认网站的所有主要区域都可用(总共几百页)。他们不会做任何改变数据的事情——只是撤回页面和表单。

我目前在部署生产实例时不运行它们,但现在您提到它 - 这实际上可能是一个好主意。

另一种选择是提取站点地图中出现的每个页面(如果有的话,您可能应该这样做)。编写一个 gem / rake 脚本来做到这一点应该很容易。