Rails 应用程序通过 Capistrano(在运行Apache 前端的 gentoo 机器上)很好地部署,Symlink 指向正确的(最新)目录。只有服务器继续使用旧目录,重新启动 Thin 无济于事。看起来好像正在进行一些缓存?
第二天运行通常的瘦服务器重启以进行测试……</p>
thin restart -s1 -p 3004 -e production
…突然确实使用了最新的目录。但是任何新的部署再次无法使用,场景又重新开始。
# remote directories, via Capistrano
/release…1
/release…2
/release…3 # Server uses this directory, why?
/release…4
/release…5 # symlink 'current' points here
解决了:
我试图一遍又一遍地从同一个 shell 中的当前重新启动 Thin。这令人尴尬地意味着我留在了同一个符号链接的 /current 目录中以重新启动。显然,与此同时,当前实际上是通过 Capistrano 推出的新产品。
tl;博士
#from current
cd ..
cd current/
Thin restart