Has realizado esta acción demasiadas veces

I get the below error quite a few times.

{"errors":["You’ve performed this action too many times. Please wait a few seconds before trying again."],"error_type":"rate_limit","extras":{"wait_seconds":0}}

How do I eliminate this error. Please suggest.

1 me gusta

Go look in settings > Rate Limit. Change the values as you please

Hi @IAmGav,

I have made,

  1. rate limit create topic = 0 (After creating a topic, users must wait (n) seconds before creating another topic.)
  2. rate limit create post = 0 (After posting, users must wait (n) seconds before creating another post.)
  3. rate limit new user create topic = 0 (After creating a topic, new users must wait (n) seconds before creating another topic.)
  4. rate limit new user create post = 0 (After posting, new users must wait (n) seconds before creating another post.)

But, still the error is persistent. Are there any other limits I need to look at.

1 me gusta

I have disabled all the settings mentioned in:

But, still I get the “You Have Performed this Action Too Many Times” error.
Is there something else I have to do?

So what are you exactly doing what causes this error?

I am trying to create Topics using API. While trying to create like 100 topics through API, it is throwing me this error.
I am also trying to Update Tags to my Topics through API, there are 100s of Topics in my forum which do not have tags. So I am updating tags to them through API.

So what are the values of

DISCOURSE_MAX_USER_API_REQS_PER_MINUTE
DISCOURSE_MAX_USER_API_REQS_PER_DAY
DISCOURSE_MAX_ADMIN_API_REQS_PER_KEY_PER_MINUTE

and are you sure you’re staying below those numbers?

2 Me gusta

Hola :wave:
Estoy teniendo el mismo problema pero con las acciones de lectura

Estoy creando una integración con Discourse y uso la API para leer muchas publicaciones. No realizo ninguna operación de escritura, solo de lectura. Para obtener las últimas publicaciones, hago lo siguiente:

  1. Obtengo los últimos temas usando el endpoint /latest.json
  2. Obtengo secuencialmente todos los temas a través de /t/:id para poder obtener el flujo de publicaciones y paginar a través de él
  3. Si hay más de 20 publicaciones en ese tema, obtengo sus IDs de “stream” y los obtengo secuencialmente en fragmentos de tamaño 20

También hago todas las solicitudes en una cola e intento enviar no más de ~25 solicitudes por 10 segundos, pero aún así a menudo veo el error “Has realizado esta acción demasiadas veces” para las solicitudes de lectura de temas o publicaciones. Fui a la configuración de Discourse pero no encuentro ningún límite para la lectura aquí. Solo veo el límite para “Crear temas” y otras operaciones de escritura.

¿Hay algo que pueda hacer al respecto? Gracias por cualquier consejo y disculpa por reabrir un tema antiguo.

1 me gusta

Parece que estoy alcanzando el límite de max_admin_api_reqs_per_minute. ¿Se puede personalizar? No lo veo en Configuración > Límites de frecuencia.

EDITAR: en realidad, parece que entran en juego dos límites. admin_api_key_rate_limit y ip_10_secs_limit.

1 me gusta

Tengo curiosidad si añadir ?print=true ayudará a reducir el número de llamadas a la API al leer.

Esto te permitirá obtener 1000 publicaciones en una sola llamada a la API.

Oh, por alguna razón pensé que ?print tenía límites de tasa aún más estrictos

Pero parece que no se trata del uso de ?print=true sino de otra cosa. Definitivamente lo intentaré.

Pero, según entiendo, solo ayudará con temas que tengan más de 20 publicaciones. Creo que la mayoría de nuestros temas tienen menos, por lo que el cuello de botella real es demasiadas solicitudes para los temas.

1 me gusta

Sí, eso es para limitar a los usuarios. Si tienes una clave de API de administrador, esa configuración no te afecta.

Ah, sí, muy probable entonces.

Además de simplemente verificar los errores 429 y reducir la velocidad según la cantidad especificada, hay un par de opciones.

Comenzaría usando el complemento del explorador de datos para escribir una consulta y obtener todos los temas que buscas. Creo que devolverá hasta 1000 resultados. Luego puedes usar la API para llamar a la consulta y obtener la respuesta.

Dependiendo de tu caso de uso, los webhooks también podrían ser útiles aquí. Podrías configurarlos para cada nuevo tema y publicación y simplemente escuchar todo el contenido más reciente.

Si aún determinas que necesitas aumentar los límites de velocidad de la API, eso es algo que podemos hacer, pero solo para sitios en nuestro plan empresarial, ya que no están en nuestro alojamiento compartido pro/business.

El problema al usar el plugin Data Explorer es que no somos los únicos usuarios de la integración de Discourse. Nosotros (fibery.io) permitimos a nuestros clientes integrar sus instancias de Discourse para que puedan sincronizar los datos sin problemas con nuestra herramienta.

Los webhooks son una buena adición, pero no ayudarán durante la sincronización inicial (que es la más pesada, por ejemplo, temas y publicaciones del último mes). Después de eso, realizamos sincronizaciones programadas para nuevos datos y no son un problema.

Verificar 429 y reintentar funciona bien, solo que a veces puede ser lento)

Gracias por considerarlo :bow:

1 me gusta