重新部署时,Rails file_store缓存会清除

时间:2011-11-05 16:09:08

标签: ruby-on-rails caching deployment passenger capistrano

我不断开发我的rails应用程序并每隔1或2周部署一次。我有很多内容需要缓存很长一段时间。我切换到使用rails file_store进行缓存,因为其他缓存选项将缓存存储在内存中,当我必须重新启动乘客时,缓存会消失。我遇到的问题是每次部署更新时,无论如何我都会丢失缓存,即使它是基于文件的。在部署rails应用程序的更新时,有没有办法阻止缓存清除?我使用capistrano进行部署,使用git进行版本控制。

1 个答案:

答案 0 :(得分:2)

在共享目录下创建一个目录来保存缓存。在deploy.rb中,为旧目录所在的新目录创建一个符号链接。例如,以下是我对日志目录进行符号链接的简化版本:

namespace :deploy do
  desc "Re-link log files"
  task :link_logs, :roles => :app do
    run "ln -nfs '#{shared_path}/log' '#{current_path}/log'"
  end
end

# Activate post-deploy re-linking
after 'deploy:symlink', 'deploy:link_logs'

现在,每当我部署时,我的日志在部署中都是连续的,并存储在: * /路径/到/ DEPLOY_DIR /共享/日志*

相关问题