У меня есть приложение Rails, которое выполняет запрос ajax на другой веб-сайт, когда пользователь нажимает кнопку. На локальном heroku
он работает отлично, но у heroku
это не так. Он возвращается: "We're sorry, but something went wrong."
(500), и вот журналы
Processing by HomeController#some_request as */*
2013-04-09T12:42:33.050720+00:00 app[web.1]: Parameters: {"q"=>"another_web_site.com"}
2013-04-09T12:42:33.048011+00:00 app[web.1]: Started POST "/ajax/some_request" for 180.183.158.162 at 2013-04-09 12:42:33 +0000
2013-04-09T12:42:29.793791+00:00 heroku[router]: at=info method=GET path=/assets/application.js host=my_host.org fwd="180.183.158.162" dyno=web.1 connect=1ms service=5ms status=304 bytes=0
2013-04-09T12:42:54.057280+00:00 app[web.1]:
2013-04-09T12:42:54.057280+00:00 app[web.1]: Errno::ETIMEDOUT (Connection timed out - connect(2)):
2013-04-09T12:42:54.057280+00:00 app[web.1]:
2013-04-09T12:42:54.057280+00:00 app[web.1]:
2013-04-09T12:42:54.057280+00:00 app[web.1]: lib/domain_info.rb:14:in 'who_is'
2013-04-09T12:42:54.057280+00:00 app[web.1]: app/controllers/home_controller.rb:8:in 'who_is'
2013-04-09T12:42:54.055802+00:00 app[web.1]: Completed 500 Internal Server Error in 21004ms
2013-04-09T12:42:54.059787+00:00 heroku[router]: at=info method=POST path=/ajax/some_request host=my_host.org fwd="180.183.158.162" dyno=web.1 connect=2ms service=21017ms status=500 bytes=643
Теперь это тайм-аут. Вчера вчера было https://devcenter.heroku.com/articles/error-codes#h18-request-interrupted, где sock field
было равно client
.
Почему это происходит?
Независимо от того, что делает ваше приложение в lib/domain_info.rb
, вы lib/domain_info.rb
время - вы уверены, что код работает из других мест, кроме вашего компьютера /localhost? Что делает этот код? Обмен будет полезен.
other web site
. Так почему вы думаете, что героку здесь важно?