当我尝试通过capistrano部署我的应用程序时,在ts:stop命令上有无限冻结,因此部署过程无法很好地完成。有什么想法吗?
以下是跟踪日志:
** Invoke ts:stop (first_time)
** Invoke environment (first_time)
** Execute environment
** Execute ts:stop
答案 0 :(得分:1)
在我看来,问题来自于我认为未找到的pid_file。此文件必须在Capistrano版本之外。
正如documentation所述,您应该在thinking_sphinx.yml
中有类似的内容:
production:
mysql41: 9312
enable_star: true
min_prefix_len: 3
utf8: true
pid_file: /my_project/sphinx/production.searchd.pid
indices_location: /my_project/pinchix/shared/sphinx
如果你没有,因为Capistrano正在创建版本控制文件夹,Thinking Sphinx无法在部署文件夹上找到pids(它默认搜索当前文件夹)然后将阻止,因为如果另一个已经启动(端口不是免费的),它将无法启动新的。
答案 1 :(得分:0)
确保您在使用相同的ruby版本部署挂钩后启动sphinx并运行。在我的情况下,版本不同,设置rvm default
并在deploy.rb中指定ruby版本和正确的gemset解决了这个问题。