使用puma服务器在heroku上超时错误

时间:2015-09-16 18:34:28

标签: ruby-on-rails-4 heroku github heroku-toolbelt heroku-postgres

我在heroku上部署了我的rails项目,但我在heroku上面临超时错误。我在heroku上使用puma服务器。我的项目是使用URL抓取Web数据。我也试过webrick&独角兽服务器。任何人都可以建议我解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

您的问题是缺少导致超时错误的原因的信息。当您从其他网页获取数据时,超时可能是由于没有响应的HTTP URL引起的。

在这种情况下,您使用的Web服务器可能无关紧要。事实上,Heroku强加了request timeout 30秒。如果您的应用在30秒内未返回响应,则Heroku会终止该请求。您正在使用哪个Web服务器并不重要。

为了解决这个问题,你必须

  1. 在代码中设置超时(您可以使用Timeout库)以确保没有外部HTTP请求超过一定时间,该时间必须低于Heroku超时。

  2. 您可能还希望将已运行的任务从请求的上下文转移到不受Heroku请求超时影响的异步作业。但是,为了做到这一点,你需要一个后台工作系统,如Sidekiq或Resque。