Limite de 10 secondes pour l'utilisateur

Ralentissez, vous faites trop de requêtes.
Veuillez réessayer dans 5 secondes.
Code d'erreur : user_10_secs_limit.

J’ai créé un thème qui utilise await ajax(/t/${this.args.topic.id}.json); . Celui-ci est limité en débit en raison de requêtes excessives. Comment puis-je éviter cela ? J’ai remarqué que la restriction est signalée comme une ​limite au niveau de l’utilisateur , et non comme une limite basée sur l’adresse IP.

Êtes-vous derrière un équilibreur de charge comme Cloudflare pour que Discourse ne connaisse pas l’adresse IP réelle de l’utilisateur ?

Un grep rapide et je ne vois pas user_10_secs_limit dans le code, sauf dans une spécification. Je soupçonne que cela pourrait être lié à l’IP malgré l’erreur que vous voyez.

Ici - Vous ne pouvez pas le grep :slight_smile:

error_code: \"#{error_code_identifier}_10_secs_limit\",

Venant de discourse/lib/request_tracker/rate_limiters/user.rb at main · discourse/discourse · GitHub

@truman votre composant de thème fait-il cela pour de nombreux sujets ? Qu’essayez-vous exactement d’accomplir ? Vous devriez soit voir si vous pouvez combiner les appels, par exemple en marquant les sujets puis en les récupérant par tag en un seul appel, et/ou vous devriez trouver un mécanisme de mise en cache.

2 « J'aime »

Aha ! Je pensais bien que j’oubliais quelque chose de simple. . .

1 « J'aime »

Je veux récupérer les réactions pour chaque sujet afin de pouvoir les afficher sur la page d’accueil. comme ceci :
image

Vous devez sérialiser cela dans un plugin pour éviter toutes ces requêtes.

4 « J'aime »

Récupérez le dépôt all-the-plugins et recherchez add_to_serializer

3 « J'aime »

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