Hai eseguito questa azione troppo volte

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 Mi Piace

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 Mi Piace

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 Mi Piace

Ciao :wave:
Sto riscontrando lo stesso problema ma con le azioni di lettura

Sto creando un’integrazione con Discourse e utilizzo l’API per leggere molti post. Non eseguo operazioni di scrittura, solo di lettura. Per ottenere gli ultimi post faccio quanto segue:

  1. Ottengo gli ultimi argomenti tramite l’endpoint /latest.json
  2. Ottengo sequenzialmente tutti gli argomenti tramite /t/:id in modo da poter ottenere lo stream dei post e paginarli
  3. Se ci sono più di 20 post in quell’argomento, ottengo i loro ID da “stream” e li recupero sequenzialmente in blocchi di dimensioni 20

Inoltre, eseguo tutte le richieste in coda e cerco di inviare non più di ~25 richieste ogni 10 secondi, ma vedo comunque spesso l’errore “Hai eseguito questa azione troppe volte” per le richieste di lettura di argomenti o post. Sono andato nelle impostazioni di Discourse ma non riesco a trovare limiti per la Lettura. Vedo solo limiti per “Crea argomenti” e altre operazioni di scrittura

C’è qualcosa che posso fare al riguardo? Grazie per qualsiasi suggerimento e scusa per aver ripreso un vecchio argomento

1 Mi Piace

Sembra che stia raggiungendo il limite max_admin_api_reqs_per_minute. È possibile personalizzarlo? Non lo vedo in Impostazioni > Limiti di frequenza.

MODIFICA: in realtà sembra che ci siano due limiti. admin_api_key_rate_limit e ip_10_secs_limit.

1 Mi Piace

Sono curioso se l’aggiunta di ?print=true aiuterà a ridurre il numero di chiamate API durante la lettura?

Questo ti permetterà di recuperare 1000 post in una singola chiamata API.

Oh, per qualche motivo pensavo che ?print avesse limiti di frequenza ancora più restrittivi

Ma sembra che non si tratti dell’uso di ?print=true ma di qualcos’altro. Lo proverò sicuramente.

Ma per quanto ho capito aiuterà solo con argomenti che hanno più di 20 post. Credo che la maggior parte dei nostri argomenti ne abbia meno, quindi l’ostacolo effettivo sono troppe richieste per gli argomenti.

1 Mi Piace

Sì, quello serve a limitare gli utenti. Se hai una chiave API Admin, quell’impostazione non ti riguarda.

Ah sì, molto probabile allora.

Oltre a controllare gli errori 429 e rallentare per la quantità specificata, ci sono un paio di opzioni.

Inizierei usando il plugin data explorer per scrivere una query che recuperi tutti gli argomenti che ti interessano. Credo che restituirà fino a 1000 risultati. Puoi quindi utilizzare l’API per chiamare la query e ottenere la risposta.

A seconda del tuo caso d’uso, anche i webhook potrebbero essere utili. Potresti configurarli per ogni nuovo argomento e post e semplicemente ascoltare tutti i contenuti più recenti.

Se ancora determini di dover aumentare i limiti di frequenza dell’API, possiamo farlo, ma solo per i siti sul nostro piano enterprise poiché non si trovano sul nostro hosting condiviso pro/business.

Il problema con l’uso del plugin data explorer è che non siamo gli unici utenti dell’integrazione Discourse. Noi (fibery.io) consentiamo ai nostri clienti di integrare le loro istanze di Discourse in modo da poter sincronizzare perfettamente i dati nel nostro strumento.

Le webhook sono una bella aggiunta ma non aiuteranno durante la prima sincronizzazione (che è la più pesante, ad es. argomenti e post del mese scorso). Dopodiché eseguiamo sincronizzazioni pianificate per nuovi dati e non sono un problema.

Il controllo di 429 e il nuovo tentativo funzionano bene, solo che a volte possono essere lenti)

Grazie per averci dato un’occhiata :bow:

1 Mi Piace