2014-06-14 4 views
7

Ich entwickle ein AngularJS (Frontend), das auf einem Nginx Webserver läuft und eine Anfrage an eine Rails API (Backend) sendet, die auf einem Unicorn Application Server läuft.Unicorn workers timeout

Ich erkenne, ich bin nur ein Entwickler und ich habe keine Ahnung von Server-Administration, so dass ich nur die Server setzen und starten sie.

Die Anwendung funktioniert, aber Unicorn hat ein seltsames Verhalten. Als ich es starten bekomme ich immer diese Fehlermeldung:

[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 

Es einige Sekunden dauert, bis er antwortet. Und das passiert kontinuierlich.

Ich glaube, ich bin eine Konfiguration fehlt aber keine Ahnung ...

Wenn Sie weitere Informationen benötigen, wie Konfigurationsdateien, mich nur

wissen lassen
+0

Hallo, kann zeigen Sie Ihren '' 'start_unicorn.sh' '' Skript? – mixan946

+0

Ähnlich wie http://stackoverflow.com/questions/26742776/unicorn-worker-timeout-on-aws-boxes sieht es so aus, als ob eine Anfrage darauf stößt, dass sie hängt. Problem mit dem Endpunkt vs Einhorn selbst. –

Antwort

3

Haben Sie Ihr Vermögen vorkompilierte? Bist du in Produktion? Wenn nicht, wenn Sie Ihren Server starten und Ihre erste Anfrage erhalten, wird Rails versuchen, Ihre Assets zu kompilieren, was mehr als 15 Sekunden dauern kann und das Einhorn-Timeout erreichen kann.

In Ihrem start.sh sollten Sie irgendwo

export RAILS_ENVIRONEMENT=production

Und während Sie mit der Bereitstellung sollten Sie haben:

rake assets:precompile

+1

Danke für deine Antwort Luc, aber ich brauchte viel Zeit ohne Ergebnisse, also zog ich nach Puma. – Rober

+0

Das funktioniert für mich. Danke, Luc –