Correction des erreurs 429 pour le composant de thème personnalisé

Que souhaitez-vous que l’on fasse ?
Nous avons un composant de thème personnalisé (le « Bio Book ») qui renvoie récemment des erreurs 429. Cela a commencé le 26 novembre. Avant cela, tout fonctionnait.

Le Bio Book modifie la route /u pour afficher les informations des utilisateurs de manière plus esthétique. Pour ce faire, il demandait également des informations supplémentaires sur chaque utilisateur depuis le fichier .json de chaque utilisateur. Le Bio Book utilisait le chargement différé pour éviter les erreurs 429, mais cela a cessé de fonctionner il y a quatre jours — je ne sais pas ce qui s’est passé il y a quatre jours, mais l’équipe Discourse a confirmé qu’aucun changement n’a été apporté à la limite de taux.

Le dépôt du code est le suivant : GitHub - sethgodin/discourse_biobook: Bio Book feature for Discourse

Le développeur qui a à l’origine créé ce composant pour nous n’est pas disponible pour effectuer cette correction. Nous avons donc besoin de quelqu’un qui puisse s’insérer dans le code existant et résoudre les erreurs afin que le composant de thème personnalisé fonctionne à nouveau.

Nous ne souhaitons aucune nouvelle fonctionnalité, nous n’avons pas besoin de modifier les fonctionnalités existantes et nous ne voulons pas refactoriser quoi que ce soit. Nous voulons simplement résoudre les erreurs 429 et restaurer le Bio Book à son fonctionnement précédent.

Quand avez-vous besoin que ce soit fait ?
Nous souhaitons que cela soit terminé d’ici le lundi 6 janvier 2020.

Quel est votre budget, en dollars USD, que vous pouvez offrir pour cette tâche ?
Notre budget est de 250 $ pour résoudre les erreurs 429.

Nous comprenons que la résolution des erreurs 429 corrigera tous les problèmes sous-jacents. Si ce n’est pas le cas, veuillez nous en informer et nous ajusterons notre budget en conséquence.

1 « J'aime »

Comment avez-vous installé Discourse ?

Les adresses IP des utilisateurs sont-elles correctement journalisées ?

1 « J'aime »

Nous sommes hébergés par Discourse sur un plan professionnel.

Je suppose, mais je ne suis pas certain. Comment puis-je le savoir ?

1 « J'aime »

Il s’agit donc d’un chargement différé par groupes de 50 utilisateurs, et la valeur par défaut de max_reqs_per_ip_per_10_seconds est également fixée à 50. En incluant la page principale, ce code générera au moins 51 requêtes (en moins de 10 secondes), dépassant ainsi la limite de débit.

Autrement dit : je ne vois pas comment cela aurait pu fonctionner auparavant… ?

3 « J'aime »

Alors cela fonctionne correctement. C’est dommage. Il aurait été beaucoup plus simple de corriger un problème de configuration que ce que Richard décrit.

Je ne sais pas non plus, mais cela fonctionnait correctement depuis plus d’un an. Jusqu’il y a 4 jours, nous n’avions jamais rencontré d’erreur 429.

Nous venons d’activer la limite de débit au niveau mondial pour toutes les instances Discourse partout. La semaine prochaine, nous pourrons examiner le plugin et voir s’il existe une API par lots raisonnable qu’il pourrait utiliser à la place.

6 « J'aime »

Wow, je suis tombé récemment sur le même problème pour une raison très similaire (récupérer des informations utilisateur pour afficher des cartes !), j’ai mis en place un petit hack pour le résoudre temporairement, et je suis venu sur les forums littéralement pour savoir s’il existait une API par lots que je ne connaissais pas… ou pour apprendre comment implémenter une telle route.

1 « J'aime »

@sam Ahh… c’est vraiment bon à savoir. Merci beaucoup pour le contexte !

1 « J'aime »

Désolé Alex, je t’ai mal renseigné avec ma réponse de la semaine dernière. Je ne réalisais pas que nous avions déployé ce changement il y a quelque temps.

4 « J'aime »

Tout va bien @HAWK, merci de l’avoir dit.

Je vais attendre patiemment pour ce projet jusqu’à ce que j’aie des nouvelles de @sam et de l’équipe pour savoir s’il existe une API par lots raisonnable que nous pourrions utiliser à la place.

Merci à tous.

1 « J'aime »

Bonjour Alex,

Je viens d’examiner le composant de thème. Il introduit en effet une quantité énorme de travail et un grand nombre de demandes. La limitation du débit que nous avons mise en place est tout à fait appropriée ici, agissant comme un système immunitaire.

Nous allons régler cela, mais cela pourrait prendre une à deux semaines pour tout finaliser.

Il me semble que le gros morceau ici, c’est que vous avez besoin que le répertoire commence à renvoyer toutes les informations que possèdent les cartes utilisateur. Le problème est que les composants de thème n’ont pas la capacité de modifier le serveur, nous allons donc devoir apporter une modification fondamentale à l’API qui nous permette de demander les cartes utilisateur de plusieurs personnes en une seule fois.

Nous vous tiendrons informés de nos progrès. Une petite précision concernant le budget : nous ferons cela gratuitement, mais j’estime que cela représente environ deux jours de travail pour réparer cela, ce qui dépasse largement le budget initial. Cela semble simple en surface, mais cela nécessite des modifications internes très complexes.

8 « J'aime »

Merci @sam et l’équipe, c’est extrêmement utile. Les modifications fondamentales de l’API nous seront certainement utiles, et j’imagine qu’elles le seront aussi pour d’autres utilisateurs de Discourse. Je suis ravi que nous puissions utiliser le Bio Book et le rendre plus cohérent. Un délai d’une à deux semaines nous convient.

Je comprends vos remarques concernant le budget initial et l’étendue de la correction. C’est extrêmement généreux de votre part de réaliser cela gratuitement. Merci.

Nous attendons de vos nouvelles.

4 « J'aime »

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.