2015-06-11 8 views
5

Wykonuję kosztowne połączenie z serwerem Heroku Rails. Po 13-15 sekundach konsola w mojej przeglądarce zgłosi błąd 503 Service Niedostępny. Jednak kiedy sprawdzam logi heroku, to raportuje:503 Usługa niedostępna, ale logi heroku pokazują 200

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

Innym razem logi heroku zgłaszają przekroczenie limitu pamięci. Oto przykład poniżej.

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 

Dlaczego raportowania wypełnionego 200, gdy konsola jest zgłoszeniem 503?

+0

Czy jesteś całkowicie pewien, że wpis, który podałeś powyżej w dzienniku Heroku, odpowiada prośbie wysłanej z przeglądarki? –

+0

Tak, jestem. Wysłano tylko jedno zgłoszenie i tylko ja korzystam z aplikacji. – jason328

+0

To nie jest szyny, ale ma kilka ogólnych rzeczy do spróbowania debugowania tego http://stackoverflow.com/questions/22386148/apigee-api-end-point-gives-503-on-the-browser-but -a-200-on-apigee-trace-and-cur –

Odpowiedz

2

są 2 różne rzeczy tutaj:

  • aplikacja
  • obciążenie Heroku Wyważarka

W tym przypadku równoważenia obciążenia widać, że żądania trwa zbyt długo i wysyła wam 503. Z tyłu usługa przetwarza żądanie, a zwrot kończy się 200.

Zobacz:

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

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

+0

Ustawiłem limit czasu na 120 sekund. Biorąc pod uwagę błąd 503 pojawia się po 13 sekundach, nie sądzę, że to jest problem. – jason328

+0

Przeglądając logi i wyszukując H12 stwierdziłem, że po 30 sekundach router przekroczył limit czasu i zwraca komunikat 503. Jest to udokumentowane w artykule limitów wymienionych w tej odpowiedzi. – user1881102

+0

Głosowanie, jak dla mnie, limit 30 sekund był problemem. –

0

Heroku nie daje nam wiele informacji na error-code = H10. Prosta aplikacja, coś jest nie tak z kodem/konfiguracją aplikacji. Aby zobaczyć, co się dzieje, uruchom heroku run rails console, a zobaczysz szczegóły błędu, które pomogą Ci w rozwiązaniu problemu. Nie trzeba korzystać z dzienników. heroku run rails console to wielka pomoc