2014-06-14 18 views
7

Pracuję nad AngularJS (front-end) działającym na serwerze WWW Nginx, który wysyła żądanie do Rails API (backend) działającego na serwerze aplikacji Unicorn.Limit czasu pracy jednorożców

Rozumiem, że jestem tylko programistą i nie mam pojęcia o administrowaniu serwerami, więc po prostu umieszczam serwery i uruchamiam je.

Aplikacja działa, jednak Unicorn ma dziwne zachowanie. Po uruchomieniu zawsze pojawia się ten błąd:

rober[email protected]:~/dev/scripts$ ./start_unicorn.sh 
I, [2014-06-14T11:46:06.085834 #4258] INFO -- : Refreshing Gem list 
I, [2014-06-14T11:46:11.591592 #4258] INFO -- : listening on addr=0.0.0.0:8080 fd=10 
I, [2014-06-14T11:46:12.087321 #4258] INFO -- : master process ready 
I, [2014-06-14T11:46:12.151320 #4263] INFO -- : worker=0 ready 
I, [2014-06-14T11:46:12.150526 #4266] INFO -- : worker=1 ready 
E, [2014-06-14T11:46:39.112668 #4258] ERROR -- : worker=0 PID:4263 timeout (16s > 15s), killing 
E, [2014-06-14T11:46:39.112898 #4258] ERROR -- : worker=1 PID:4266 timeout (16s > 15s), killing 
E, [2014-06-14T11:46:39.118081 #4258] ERROR -- : reaped #<Process::Status: pid 4263 SIGKILL (signal 9)> worker=0 
E, [2014-06-14T11:46:39.118634 #4258] ERROR -- : worker=1 PID:4266 timeout (16s > 15s), killing 
E, [2014-06-14T11:46:39.121820 #4258] ERROR -- : reaped #<Process::Status: pid 4266 SIGKILL (signal 9)> worker=1 
I, [2014-06-14T11:46:39.172067 #4284] INFO -- : worker=1 ready 
I, [2014-06-14T11:46:39.172620 #4281] INFO -- : worker=0 ready 

Potrwa to kilka sekund, aż zareaguje. I dzieje się to w sposób ciągły.

Chyba jestem brakuje niektórych konfiguracji, ale nie wiem ...

Jeśli potrzebujesz więcej szczegółów, takich jak pliki konfiguracyjne, po prostu daj mi znać

+0

Cześć, może pokazać swoją '' 'start_unicorn.sh' '' skrypt? – mixan946

+0

Podobne do http://stackoverflow.com/questions/26742776/unicorn-worker-timeout-on-aws-boxes wygląda na to, że istnieje żądanie uderzenia w to, co się zwisa. Problem z punktem końcowym a samym jednorożcem. –

Odpowiedz

3

Czy masz swoje aktywa prekompilowana? jesteś w produkcji? Jeśli nie, po uruchomieniu serwera i otrzymaniu pierwszego żądania, railsy spróbują skompilować zasoby, które mogą zająć więcej niż 15 sekund i osiągnąć limit czasu jednorożca.

W swojej start.sh trzeba mieć gdzieś

export RAILS_ENVIRONEMENT=production

A ty podczas wdrażania powinny mieć:

rake assets:precompile

+1

Dzięki za odpowiedź Luc, ale zajęło mi dużo czasu bez rezultatów, więc przeniosłem się do Puma. – Rober

+0

To działa dla mnie. Dzięki, Luc –