Timeout

Pas simple cette histoire !

Je m’explique : il arrive de temps en temps que le serveur Dotclear, ou DotAddict d’ailleurs, rame un peu, en général quand le serveur Web (Apache ou Nginx) est un peu trop sollicité par des crawlers — c’est ce que j’ai constaté comme cause le plus fréquemment.

Ça a un impact direct sur Dotclear, ou plutôt sur l’administration de votre blog, parce que l’application utilise des services sur ces deux domaines pour un certain nombre de tâches :

  • Récupération des nouvelles de Dotclear, avec un timeout[1] de 2 secondes, uniquement sur le tableau de bord.
  • Récupération de la dernière mise à jour de Dotclear, s’il en existe une, avec un timeout de 4 secondes, uniquement sur le tableau de bord ou sur la page de mise à jour.
  • Récupération de la liste des langues disponibles pour Dotclear, avec un timeout de 5 secondes, uniquement sur la page de gestion des langues.

Ça c’est côté Dotclear, et pour DotAddict :

  • Récupération des mises à jour des plugins et/ou des thèmes, avec un timeout de 5 secondes, uniquement sur le tableau de bord, si l’icône de gestion des plugins y est présente et/ou si l’icône de gestion de l’apparence du blog y est présente, et sur les deux pages correspondantes.
  • Récupération de la liste des plugins et/ou des thèmes, avec un timeout de 5 secondes, uniquement sur la page de gestion des plugins (pour les plugins) ou de l’apparence du blog (pour les thèmes).

Si on considère qu’une page d’administration un peu chargée, entre autre le tableau de bord, met environ 2 secondes à récupérer toutes les ressources (code HTML, CSS, Js, images, …), on peut donc imaginer qu’il ne faudra, au pire, que 7 à 8 secondes à celle-ci pour s’afficher complètement si aucun des deux serveurs de la galaxie Dotclear ne répond.

En réalité c’est un peu plus complexe que ça, parce que ce n’est pas votre navigateur qui va interroger les deux serveurs en question, mais le serveur sur lequel vous avez installé Dotclear. Du coup ça devient une sorte de coup de billard à trois bandes, entre votre navigateur (le client), votre administration Dotclear (sur votre serveur), et les deux serveurs Dotclear et DotAddict.

Donc, à part permettre de désactiver temporairement ces requêtes en cas de souci, éventuellement réservé au seul super-admin de l’installation, je vois mal ce qu’on peut faire de mieux en l’état actuel des choses.

Z’avez des idées la dessus vous ?

PS : En attendant mieux, vous pouvez toujours ne pas afficher les news de Dotclear sur votre tableau de bord, pas plus d’ailleurs que l’icône de gestion des plugins et celle de l’apparence du blog, ça sera toujours ça de requêtes en moins entre votre serveurs et ceux de Dotclear et DotAddict.

PPS : J’aime bien fouiller dans le code et décortiquer un peu le fonctionnement de ce monstrueux bordayle qu’est une application web !

Note

[1] Un timeout est la durée maximum qu’attendra une réponse l’application après un envoi d’une requête, comme par exemple le flux RSS ou Atom des nouvelles de Dotclear, avant de considérer qu’il y a un problème. Dans ce cas là, les nouvelles ne seront simplement pas affichées.

Ajouter un commentaire

Les champs suivis d'un * sont obligatoires

Les commentaires peuvent être formatés en utilisant la syntaxe Markdown Extra.

Ajouter un rétrolien

URL de rétrolien : https://open-time.net/trackback/12686

Haut de page