在capistrano中思考狮身人面像停止(ts:停止)时冻结

时间:2013-06-29 14:46:00

标签: ruby-on-rails capistrano sphinx thinking-sphinx

当我尝试通过capistrano部署我的应用程序时,在ts:stop命令上有无限冻结,因此部署过程无法很好地完成。有什么想法吗?

enter image description here

以下是跟踪日志:

** Invoke ts:stop (first_time)
** Invoke environment (first_time)
** Execute environment
** Execute ts:stop

2 个答案:

答案 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解决了这个问题。