2012-05-21 137 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