2012-05-21 140 views
13

我使用rails 3.0.11,ruby 1.9.3-p0,nginx 1.0.4unicorn 3.6.2为我的项目。我有一个问题。 我必须在我的服务器上进行长期操作。大约150秒。在这种情况下可以。设置独角兽超时

我建立了我的nginx的配置在location

proxy_read_timeout 240; 
proxy_send_timeout 240; 

并成立了我的unicorn.rb文件,命令

timeout 240 

但我总是得到502 bad gateway错误。 我认为,独角兽的问题。我得到这个独角兽日志

E, [2012-05-21T11:52:21.052382 #30423] ERROR -- : worker=1 PID:30871 timeout (104.052329915s > 60s), killing 
E, [2012-05-21T11:52:21.080378 #30423] ERROR -- : reaped #<Process::Status: pid 30871 SIGKILL (signal 9)> worker=1 
I, [2012-05-21T11:52:21.105045 #30423] INFO -- : worker=1 spawning... 
I, [2012-05-21T11:52:21.111148 #894] INFO -- : worker=1 spawned pid=894 
I, [2012-05-21T11:52:21.111659 #894] INFO -- : Refreshing Gem list 

你能帮我吗?任何帮助表示赞赏。谢谢。

+0

你确定这个独角兽文件正在被加载吗?你如何加载它? –

+0

我使用[capistrano-deploy](https://github.com/lest/capistrano-deploy)gem重新加载独角兽。有趣的是'unicorn.rb'位于unix home文件夹中,但rails应用程序位于'web-app'文件夹中。我以前从未见过类似的东西。 – caulfield

+3

我从来没有使用过这个宝石,但是如果你在'deploy:restart','unicorn:reload'**之后做了这个**,你需要重新启动独角兽,而不是重新加载它。 ** sudo /etc/init.d/unicorn restart **并设置超时时间。在独角兽中重新加载和重新启动是两件不同的事情。 –

回答

9

复制从意见的答案,以从“未答复”过滤器中删除了这个问题:

我从来没有用过这种宝石,但如果你这样做后 “部署:重启','独角兽:重新加载'你需要重新启动独角兽,而不是 只能重新加载它。 sudo /etc/init.d/unicorn restart并且超时将设置为 。在独角兽中重新加载和重新启动是两件不同的事情。

〜每Maurício Linhares

1

答案chaning超时后的config /宇宙大帝/ production.rb

我不得不跑

cap deploy 

,然后停止&开始宇宙大帝的主进程,挑新配置:

cap unicorn:stop 
cap unicorn:start