Has realizado esta acción demasiadas veces

Recibo el siguiente error varias veces.

{"errors":["Has realizado esta acción demasiadas veces. Por favor, espera unos segundos antes de intentarlo de nuevo."],"error_type":"rate_limit","extras":{"wait_seconds":0}}

¿Cómo puedo eliminar este error? Por favor, sugiere una solución.

1 me gusta

Ve a Configuración > Límite de tasa. Cambia los valores como desees.

Hola @IAmGav,

He configurado lo siguiente:

  1. límite de tasa para crear tema = 0 (Después de crear un tema, los usuarios deben esperar (n) segundos antes de crear otro tema.)
  2. límite de tasa para crear publicación = 0 (Después de publicar, los usuarios deben esperar (n) segundos antes de crear otra publicación.)
  3. límite de tasa para que usuarios nuevos creen tema = 0 (Después de crear un tema, los usuarios nuevos deben esperar (n) segundos antes de crear otro tema.)
  4. límite de tasa para que usuarios nuevos creen publicación = 0 (Después de publicar, los usuarios nuevos deben esperar (n) segundos antes de crear otra publicación.)

Sin embargo, el error persiste. ¿Hay algún otro límite que deba revisar?

1 me gusta

He desactivado todas las configuraciones mencionadas en:

Sin embargo, sigo recibiendo el error “Has realizado esta acción demasiadas veces”.
¿Hay algo más que deba hacer?

Entonces, ¿qué estás haciendo exactamente que causa este error?

Estoy intentando crear temas mediante la API. Al intentar crear alrededor de 100 temas a través de la API, me arroja este error.
También estoy intentando actualizar etiquetas de mis temas mediante la API; hay cientos de temas en mi foro que no tienen etiquetas. Por lo tanto, estoy actualizando las etiquetas de ellos a través de la API.

¿Cuáles son los valores de

DISCOURSE_MAX_USER_API_REQS_PER_MINUTE
DISCOURSE_MAX_USER_API_REQS_PER_DAY
DISCOURSE_MAX_ADMIN_API_REQS_PER_KEY_PER_MINUTE

y ¿estás seguro de que te mantienes por debajo de esos números?

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