【发布时间】:2012-01-20 16:52:42
【问题描述】:
我没有太多运气通过谷歌找到信息,也许这里有人遇到过类似的问题。
我们有一个使用 Postgres DB 在 Heroku 上运行的 rails 应用程序。我们有一个特别慢的查询(是的,我们正在修复查询),但是在调试这个问题的过程中,我观察到我们的 rack-timeout gem 没有在 15 秒时终止请求。我已经通过插入 sleep(50) 进行了侧面测试,果然,在这种情况下,机架超时工作正常。
这是我们日志的编辑副本,显示机架时间(时间到了!)发生在几分钟后,我们仍然在 30 秒后看到 H12 请求超时。
2011-12-14T21:15:16+00:00 app[web.2]: Started GET "/search?utf8=%E2%9C%93&terms=foo" for 173.164.186.205 at Wed Dec 14 13:15:16 -0800 2011
2011-12-14T21:15:16+00:00 app[web.2]: search query elapsed time => [0.000365018844604492]
2011-12-14T21:15:46+00:00 heroku[router]: Error H12 (Request timeout) -> GET /search dyno=web.2 queue= wait= service=30000ms status=503 bytes=0
2011-12-14T21:18:47+00:00 app[postgres]: [6-1] [removed] [COBALT] LOG: duration: 211241.725 ms statement: SELECT [truncated]
2011-12-14T21:18:47+00:00 app[web.2]:
2011-12-14T21:18:47+00:00 app[web.2]: ActionView::Template::Error (Timeout::Error: time's up!: SELECT [truncated]):
对为什么以及如何强制执行机架超时有任何见解吗?
【问题讨论】:
标签: ruby-on-rails-3 postgresql heroku rack