在Heroku上重定向的超时请求

时间:2013-09-07 15:01:59

标签: heroku timeout flask

我在使用Flask向Heroku上的数据库发出简单查询的页面上遇到请求超时,仅在在一段时间不活动后首次访问该页面。我调查了类似的问题,但我认为它们不适合我的情况。

进一步澄清并提供此问题的背景:

  1. 仅在刷新后,访问该页面不会导致请求超时。
  2. 然而,问题只会在网站长时间不活动后重新出现。
  3. 我在代码中用print语句跟踪错误。超时似乎是在一页结尾处重定向到另一页时。所有代码都正常运行,包括对数据库的查询,直到它返回重定向。 例如,实际错误位于指定为此新页面重定向的路径上。 at=error code=H12 desc="Request timeout" method=GET path=/resultSearch host=nutrientdata.herokuapp.com fwd="216.165.95.73" dyno=web.1 connect=1ms service=30001ms status=503 bytes=0 为了支持内部代码不是问题:我在新文件上跟踪数据库性能,但在此页面上发出的查询需要很短的时间。
  4. 我尝试在本地主机上复制情况,但它没有给我任何错误。但是,实际上,在本地主机上第一次重定向到页面所需的时间比后续重定向到同一页面要长(仅在一段时间不活动后)
  5. 我尝试使用新文件ping应用程序 - 但是我没有ping那个特定页面,而是该应用程序的第一页。
  6. 我试图解决此问题,而不是重定向到另一个页面,只是在允许其他重定向之前呈现一个(临时)页面。事实证明,问题现在转移到新页面。换句话说,请求超时现在是另一个重定向。所有这些再次发生在一段时间不活动后第一次访问应用程序期间。
  7. 我认为我正在寻找的是为什么在长时间不活动后第一次重定向需要的时间比另一次更长。我应该如何解决它以解决此请求超时。

    对此的任何帮助将不胜感激。谢谢!

1 个答案:

答案 0 :(得分:0)

您说即使在您的本地devserver中也存在问题,因此它与Heroku无关。 通常这种类型的问题是由数据库的透明缓存引起的。

在本地devserver中跟踪您在最慢的场景中对数据库进行的查询(即重定向后您正在访问的新页面)。

可能有一个制作/改进的索引。