Кеш Rails file_store очищается при повторном размещении - PullRequest
0 голосов
/ 05 ноября 2011

Я постоянно разрабатываю свое приложение rails и развертываю примерно раз в 1 или 2 недели. У меня есть много контента, который я хотел бы кэшировать довольно долго. Я перешел на использование rails file_store для кеширования, так как другие опции кеширования хранят кеш в памяти, который уходит, когда мне приходится перезапускать пассажира. Проблема, с которой я сталкиваюсь, заключается в том, что каждый раз, когда я развертываю обновление, я все равно теряю кэш, даже если он основан на файлах. Есть ли способ предотвратить очистку кэша при развертывании обновления для приложения rails? Я использую capistrano для развертывания и git для контроля версий.

1 Ответ

2 голосов
/ 05 ноября 2011

Создайте каталог в общем каталоге для хранения кэша. В вашем 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 / Shared / журнал *

...