2015-06-11 7 views
5

Ich mache einen teuren Anruf bei meinem Heroku Rails Server. Nach 13 bis 15 Sekunden meldet die Konsole in meinem Browser einen Service nicht verfügbar 503 Fehler. Aber wenn ich meine Heroku-Protokolle überprüfe, meldet es:503 Dienst nicht verfügbar, aber Heroku Protokolle zeigen 200

Completed 200 OK in 45592ms (Views: 220.3ms | ActiveRecord: 33457.5ms) 

Andere Male berichten die Heroku-Protokolle, dass ein Speicher Quota überschritten hat. Hier ist ein Beispiel dafür.

2015-06-11T15:17:20.238285+00:00 app[web.1]: Completed 200 OK in 81881ms (Views: 201.6ms | ActiveRecord: 18021.2ms) 
2015-06-11T15:17:33.482930+00:00 heroku[web.1]: Process running mem=841M(164.4%) 
2015-06-11T15:17:33.482930+00:00 heroku[web.1]: Error R14 (Memory quota exceeded) 
2015-06-11T15:17:53.147570+00:00 heroku[web.1]: Process running mem=841M(164.4%) 
2015-06-11T15:17:53.147679+00:00 heroku[web.1]: Error R14 (Memory quota exceeded) 
2015-06-11T15:17:59.751540+00:00 app[web.1]: E, [2015-06-11T15:17:59.695813 #3] ERROR -- : worker=2 PID:13 timeout (121s > 120s), killing 
2015-06-11T15:17:59.916750+00:00 app[web.1]: E, [2015-06-11T15:17:59.906435 #3] ERROR -- : reaped #<Process::Status: pid 13 SIGKILL (signal 9)> worker=2 
2015-06-11T15:18:02.487428+00:00 app[web.1]: I, [2015-06-11T15:18:02.427293 #16] INFO -- : worker=2 ready 

Warum meldet es eine Completed 200, wenn die Konsole eine 503 meldet?

+0

Sind Sie absolut sicher, dass der Eintrag, den Sie oben im Heroku-Protokoll angegeben haben, der Anfrage entspricht, die Sie vom Browser gesendet haben? –

+0

Ja, ich bin. Es wird nur eine Anfrage gesendet und ich bin die einzige, die die App nutzt. – jason328

+0

Dies ist nicht Schienen, aber es hat ein paar allgemeine Dinge zu versuchen, diese http://stackoverflow.com/questions/22386148/apigee-api-end-point-gives-503-on-the-browser-aber zu debuggen -a-200-on-apigee-trace-and-cur –

Antwort

2

gibt es 2 verschiedene Dinge hier:

  • App
  • die Heroku Load Balancer

In diesem Fall wird die Load-Balancer sehen, dass die Anforderung zu lange dauert und Sie sendet die 503. Auf der Rückseite verarbeitet der Dienst die Anfrage und die Rückgabe wird mit einem 200.

abgeschlossen. Siehe:

https://devcenter.heroku.com/articles/limits

https://devcenter.heroku.com/articles/request-timeout

+0

Ich habe mein Timeout auf 120 Sekunden eingestellt. Wenn man bedenkt, dass der Fehler 503 nach 13 Sekunden auftritt, glaube ich nicht, dass dies das Problem ist. – jason328

+0

Wenn ich durch die Logs blicke und nach H12 suche, habe ich festgestellt, dass der Router nach 30 Sekunden abläuft und eine 503 Nachricht zurückgibt. Dies ist in dem in dieser Antwort aufgeführten Limit-Artikel dokumentiert. – user1881102

+0

Abstimmung, wie für mich, 30 Sekunden Grenze war das Problem. –

0

Heroku tut gibt uns nicht viele Informationen für error-code = H10. Einfach gesagt, mit Ihrem Anwendungscode/Ihrer Konfiguration läuft etwas falsch. Führen Sie heroku run rails console aus, um zu sehen, was schief läuft, und Sie können Fehlerdetails anzeigen, die Ihnen bei der Behebung des Fehlers behilflich sein werden. Keine Notwendigkeit, Protokolle zu verwenden. heroku run rails console ist eine große Hilfe

Verwandte Themen