2013-09-07 3 views
1

Я нахожу запрос на тайм-аут на странице, которая генерирует простые запросы к базе данных на Heroku с использованием Flask, только на первый доступ к этой странице после периода бездействия. Я изучил похожие вопросы, но я не думаю, что они подходят мне.Запрос на переадресацию на Heroku

Для уточнения и дать контекст этой проблемы дальше:

  1. только после того, как освежающий, доступ к этой странице не вызывает тайм-аут запроса.
  2. Однако проблема возникает только после долгой паузы бездействия на веб-сайте.
  3. Я проследил ошибку с заявлением на печать в коде. Тайм-аут, похоже, когда в конце одной страницы перенаправляется на другую. Весь код работает правильно, включая запрос к базе данных, до тех пор, пока он не вернет перенаправление возврата. Например, фактическая ошибка указана в пути, указанном при перенаправлении этой новой страницы. 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. Я пробовал пинговать приложение, используя новую реликвию - однако я не пинговаю эту страницу, но первую страницу приложения.
  6. Я попытался исправить это, вместо того, чтобы перенаправлять на другую страницу, просто показывая одну (временную) страницу, прежде чем разрешить другое перенаправление. Оказывается, теперь проблема сдвигается на новую страницу. Другими словами, тайм-аут запроса теперь находится в другом перенаправлении. Все это, опять же, происходит во время первого доступа к приложению после периода бездействия.

Я думаю, что я искал, почему перенаправление в первый раз после длительного периода бездействия занимает больше времени, чем другое. И как я должен исправить это, чтобы решить этот тайм-аут запроса.

Любая помощь по этому вопросу была бы высоко оценена. Спасибо!

ответ

0

Вы сказали, что проблема присутствует даже в вашем локальном devserver, поэтому это не связано с Heroku. Обычно этот тип проблем связан с прозрачным кэшированием базы данных.

Отслеживайте на своем локальном devserver запросы, которые вы делаете в db в самом медленном сценарии (это новая страница, к которой вы обращаетесь после перенаправления).

Возможно, есть индекс, чтобы сделать/улучшить.

Смежные вопросы