我不断开发我的rails应用程序并每隔1或2周大概部署一次。我有很多内容需要缓存一段时间。我切换到使用rails file_store进行缓存,因为其他缓存选项将缓存存储在内存中,当我必须重新启动乘客时,缓存将消失。我遇到的问题是,每次部署更新时,即使它是基于文件的,我仍然会释放缓存。有没有一种方法可以防止在为rails应用程序部署更新时清除缓存?我正在使用capistrano进行部署,并使用git进行版本控制。Rails file_store缓存在重新部署时清除
回答
在共享目录下创建一个目录来存放缓存。在您的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 /共享/日志*
这听起来像我所需要的。不幸的是我无法弄清楚如何在共享目录中创建一个目录。我想这让我听起来像一个全新的。如果我在共享服务器上创建一个目录并尝试这个,我得到这个error.ln:创建符号链接'{#current_path}/cache':没有这样的文件或目录 –
#对于current_path应该在开头的左侧括号如:#{current_path}/log – JDutil
谢谢。它现在很好用。 –
- 1. 部署后清除模板缓存
- 2. 部署后Symfony清除缓存组件
- 3. 如何在部署新版本时清空缓存?
- 4. Python重新模块的缓存清除
- 5. 重新部署SSIS包 - 缓存?
- 6. 清除页面缓存在Rails中
- 7. Webistrano - 如何在部署后清除全局HTML缓存
- 8. 在部署期间使用PowerShell清除Azure Redis缓存
- 9. Heroku部署在“清理bundler缓存”时超时。
- 10. 何时清除OpenAFS缓存?
- 11. 当重新启动活动时从字体缓存清除
- 12. 清除缓存
- 13. 缓存清除
- 14. Django缓存 - 清除缓存
- 15. 部署后清除用户的浏览器缓存symfony2
- 16. 自动部署,刷新(清除缓存),并重新加载您的代码为web开发人员
- 17. NSURLConnection缓存清除和重新连接问题
- 18. Jenkins部署Symfony3 Web应用程序时的权限(清除缓存)
- 19. 部署时的“热身缓存”
- 20. 清除缓存?在c#mvc
- 21. window.location.reload清除缓存
- 22. repcached清除缓存
- 23. 清除ActiveRecord缓存
- 24. 清除dom缓存
- 25. 清除PhoneGap缓存
- 26. SILEX清除缓存
- 27. 清除memory_get_peak_usage缓存
- 28. 清除帧缓存
- 29. 清除缓存,ObjectCacheManager
- 30. 防止在重新部署时清理数据库
每次部署应用程序时清理缓存是安全的:如果您的应用程序的旧版本是缓存页面,该怎么办? – apneadiving
如果我需要过期一组缓存页面,那么我将使用rails控制台手动过期。这样,不受更新影响的页面仍然被缓存。 –