2013-09-07 3 views
1

Je cours en timeout de requête sur une page qui émet de simples requêtes à la base de données sur Heroku en utilisant Flask, seulement sur le premier accès de cette page après une période d'inactivité. J'ai examiné des questions similaires posées, mais je ne pense pas qu'elles correspondent à mon cas.Timeout Demande de redirection sur Heroku

Pour clarifier et donner le contexte à ce problème plus:

  1. seulement après rafraîchissante, l'accès à cette page ne provoque pas de délai d'attente de demande.
  2. Toutefois, le problème ne réapparaît qu'après une longue pause d'inactivité sur le site Web.
  3. J'ai tracé l'erreur avec l'instruction d'impression dans le code. Le délai semble être à la fin d'une page redirigeant vers une autre. Tout le code s'exécute correctement, y compris la requête à la base de données, jusqu'à ce qu'il renvoie la redirection de retour. Par exemple, l'erreur réelle est sur le chemin spécifié lorsque cette nouvelle page est redirigée. 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 Pour soutenir le point que le code à l'intérieur n'est pas le problème: J'ai tracé la performance de la base de données sur la nouvelle relique, mais la requête émise sur cette page prend très peu de temps.
  4. J'ai essayé de répliquer la situation sur l'hôte local mais cela ne me donne aucune erreur. Cependant, en effet, rediriger vers la page première fois sur l'hôte local prend plus de temps que la redirection suivante vers la même page (seulement après une période d'inactivité)
  5. J'ai essayé de ping l'application en utilisant une nouvelle relique - mais je ne ping pas cette page particulière, mais la première page de l'application.
  6. J'ai essayé de résoudre ce problème, au lieu de rediriger vers une autre page, il suffit de rendre une page (temporaire) avant d'autoriser une autre redirection. Il s'avère que le problème est maintenant déplacé vers une nouvelle page. En d'autres termes, le délai d'attente de la requête est maintenant sur une autre redirection. Tout cela, encore une fois, se produire lors du premier accès à l'application après une période d'inactivité.

Je pense que ce que je cherche est pourquoi la redirection pour la première fois après une longue période d'inactivité prend plus de temps que l'autre. Et comment dois-je le réparer pour résoudre ce délai d'attente de demande.

Toute aide à ce sujet serait grandement appréciée. Je vous remercie!

Répondre

0

Vous avez dit que le problème est présent même dans votre serveur local, donc ce n'est pas lié à Heroku. Normalement, ce type de problèmes est dû à la mise en cache transparente de la base de données. Tracez, dans votre serveur de développement local, les requêtes que vous faites sur la base de données dans le scénario le plus lent (c'est-à-dire la nouvelle page à laquelle vous accédez après la redirection).

Probablement il y a un index à faire/améliorer.

Questions connexes