Vous avez effectué cette action trop de fois erreur

Je rencontre assez souvent l’erreur suivante.

{\"errors\":[\"Vous avez effectué cette action trop de fois. Veuillez patienter quelques secondes avant de réessayer.\"],\"error_type\":\"rate_limit\",\"extras\":{\"wait_seconds\":0}}

Comment puis-je éliminer cette erreur ? Veuillez suggérer des solutions.

Allez dans Paramètres > Limite de débit. Modifiez les valeurs comme vous le souhaitez

Bonjour @IAmGav,

J’ai configuré les paramètres suivants :

  1. Limite de création de sujet = 0 (Après avoir créé un sujet, les utilisateurs doivent attendre (n) secondes avant d’en créer un autre.)
  2. Limite de création de message = 0 (Après avoir publié, les utilisateurs doivent attendre (n) secondes avant de publier un autre message.)
  3. Limite de création de sujet pour les nouveaux utilisateurs = 0 (Après avoir créé un sujet, les nouveaux utilisateurs doivent attendre (n) secondes avant d’en créer un autre.)
  4. Limite de création de message pour les nouveaux utilisateurs = 0 (Après avoir publié, les nouveaux utilisateurs doivent attendre (n) secondes avant de publier un autre message.)

Cependant, l’erreur persiste toujours. Y a-t-il d’autres limites que je devrais examiner ?

J’ai désactivé tous les paramètres mentionnés dans :

Mais, je reçois toujours l’erreur « Vous avez effectué cette action trop de fois ».
Y a-t-il autre chose que je dois faire ?

Donc, que faites-vous exactement qui provoque cette erreur ?

Je tente de créer des sujets via l’API. Lors de la création d’une centaine de sujets, une erreur est générée.

Je tente également de mettre à jour les tags de mes sujets via l’API. Il y a des centaines de sujets dans mon forum qui ne possèdent pas de tags, je les mets donc à jour via l’API.

Quelles sont donc les valeurs de

DISCOURSE_MAX_USER_API_REQS_PER_MINUTE
DISCOURSE_MAX_USER_API_REQS_PER_DAY
DISCOURSE_MAX_ADMIN_API_REQS_PER_KEY_PER_MINUTE

et êtes-vous certain de rester en dessous de ces limites ?

Bonjour :wave:
Je rencontre le même problème, mais avec les actions de lecture

Je développe une intégration avec Discourse et j’utilise l’API pour lire de nombreux messages. Je n’effectue aucune opération d’écriture, seulement de lecture. Pour obtenir les derniers messages, je procède comme suit :

  1. Obtenir les derniers sujets à l’aide du point de terminaison /latest.json
  2. Obtenir séquentiellement tous les sujets via /t/:id afin d’obtenir le flux de messages et de le paginer
  3. S’il y a plus de 20 messages dans ce sujet, obtenir leurs identifiants à partir du « stream » et les récupérer séquentiellement par lots de 20

De plus, j’effectue toutes les requêtes dans une file d’attente et j’essaie d’envoyer pas plus d’environ 25 requêtes par 10 secondes, mais je vois toujours l’erreur « You Have Performed this Action Too Many Times Error » pour les requêtes de lecture de sujets ou de messages. Je suis allé dans les paramètres de Discourse mais je n’ai trouvé aucune limite pour la lecture ici. Je ne vois que la limite pour « Create topics » et d’autres opérations d’écriture

Y a-t-il quelque chose que je puisse faire à ce sujet ? Merci pour tout conseil et désolé de déterrer un vieux sujet.

Il semble que j’atteigne la limite max_admin_api_reqs_per_minute. Peut-elle être personnalisée ? Je ne la vois pas dans Paramètres > Limites de débit.

EDIT : en fait, il semble que deux limites s’appliquent ici. admin_api_key_rate_limit et ip_10_secs_limit.

Je suis curieux de savoir si l’ajout de ?print=true aidera à réduire le nombre d’appels API lors de la lecture ?

Cela vous permettra de récupérer 1000 messages en un seul appel API.

Oh, pour une raison quelconque, je pensais que ?print avait des limites de débit encore plus strictes

Mais il semble que ce ne soit pas une question d’utilisation de ?print=true mais de quelque chose d’autre. J’essaierai certainement.

Mais si je comprends bien, cela n’aidera qu’avec les sujets qui ont plus de 20 messages. Je crois que la plupart de nos sujets en ont moins, donc le véritable goulot d’étranglement est le trop grand nombre de requêtes pour les sujets.

Oui, c’est pour limiter les utilisateurs. Si vous avez une clé d’API d’administrateur, ce paramètre ne vous affecte pas.

Ah oui, très probable alors.

En plus de vérifier les erreurs 429 et de ralentir pour le montant spécifié, il existe quelques options.

Je commencerais par utiliser le plugin d’exploration de données pour écrire une requête afin d’obtenir tous les sujets que vous recherchez. Je crois qu’il renverra jusqu’à 1000 résultats. Vous pouvez ensuite utiliser l’API pour appeler la requête et obtenir la réponse.

Selon votre cas d’utilisation, les webhooks pourraient également être utiles ici. Vous pourriez les configurer pour chaque nouveau sujet et publication et simplement écouter tout le contenu le plus récent.

Si vous déterminez toujours que vous devez augmenter les limites de débit de l’API, c’est quelque chose que nous pouvons faire, mais uniquement pour les sites de notre plan d’entreprise car ils ne sont pas sur notre hébergement mutualisé pro/business.

Le problème avec l’utilisation du plugin d’exploration de données est que nous ne sommes pas les seuls utilisateurs de l’intégration Discourse. Nous (fibery.io) permettons à nos clients d’intégrer leurs instances Discourse afin qu’ils puissent synchroniser les données de manière transparente avec notre outil.

Les webhooks sont un ajout intéressant, mais ils n’aideront pas lors de la première synchronisation (qui est la plus lourde, par exemple les sujets et les messages du mois dernier). Après cela, nous effectuons des synchronisations planifiées pour les nouvelles données et elles ne posent pas de problème.

La vérification des 429 et la nouvelle tentative fonctionnent bien, mais peuvent parfois être lentes)

Merci de vous pencher sur le problème :bow: