2012-05-21 18 views
13

Używam , ruby 1.9.3-p0, nginx 1.0.4 i unicorn 3.6.2 dla mojego projektu. I mam problem. Muszę wykonać długoterminową operację na moim serwerze. To około 150 sekund. I jest w porządku w tym przypadku.Ustaw limit czasu jednorożca

mam skonfigurować nginx config w location

proxy_read_timeout 240; 
proxy_send_timeout 240; 

i skonfigurować mój plik unicorn.rb z poleceniem

timeout 240 

ale zawsze 502 bad gateway błąd. Myślę, że problem z jednorożcem. Dostaję ten dziennik jednorożca

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 

Czy możesz mi pomóc? Każda pomoc jest doceniana. Dziękuję Ci.

+0

Czy jesteś pewien, że ten plik jednorożca jest ładowany? Jak ładujesz to? –

+0

Używam klejnotu [capistrano-deploy] (https://github.com/lest/capistrano-deploy), aby ponownie załadować jednorożca. Interesujące jest to, że 'unicorn.rb' znajduje się w katalogu domowym unix, ale aplikacja rails znajduje się w folderze' web-app'. Nigdy wcześniej nie spotkałem podobnego. – caulfield

+3

Nigdy nie korzystałem z tego klejnotu, ale jeśli robisz to ** po "wdrożeniu: uruchom ponownie", "jednorożec: przeładuj" ** musisz zrestartować jednorożca, a nie tylko go ponownie załadować. ** sudo /etc/init.d/unicorn restart ** i ustawiony zostanie limit czasu. Przeładowanie i ponowne uruchomienie to dwie różne rzeczy w jednorożcu. –

Odpowiedz

9

Kopiowanie odpowiedź od komentarzach, aby usunąć to pytanie z „Nieodebrane” Filtr:

Nigdy nie używałem tego klejnotu, ale jeśli robisz to po „wdrożyć: restart "," jednorożec: przeładuj " musisz ponownie uruchomić jednorożca, a nie tylko przeładować. sudo /etc/init.d/unicorn restart, a limit czasu zostanie ustawiony na . Przeładowanie i ponowne uruchomienie to dwie różne rzeczy w jednorożcu.

~ odpowiedź za Maurício Linhares

1

Po chaning limit czasu w config/Unicron/production.rb

musiałem uruchomić

cap deploy 

a następnie zatrzymać proces główny Unicron & startu do piłki nową konfigurację za pomocą:

cap unicorn:stop 
cap unicorn:start