API di Discourse genera 429

Ciao,

Sto cercando di utilizzare l’API di Discourse per fornire risposte sciocche in un forum. Ad esempio, se qualcuno dice “Linux” in un thread, Discobot risponderà “Intendi GNU/Linux?”.

Funziona, a meno che qualcuno non risponda con la stessa frase, quindi ricevo un sacco di risposte 429 o vuote per due minuti (sono quasi esattamente due minuti), dopodiché l’API ricomincerà a gestire le risposte normalmente.

Ad esempio:

Linux
FOSS
dotNET
Java
Linux

Questo funzionerà correttamente. Tuttavia:

Linux
FOSS
dotNET
Linux
Linux

Questo si romperà.

Hai qualche idea a cosa si riferisca la finestra di due minuti? Abbiamo giocato con le impostazioni di app.yml e modificato i limiti di frequenza dell’API. Non sembra aver avuto alcun effetto.

Grazie!

Abbiamo bisogno di maggiori informazioni. Qual è l’endpoint dell’API che stai chiamando e che restituisce 429?

1 Mi Piace
https://forum.domain.net/t/1000/highestPost.json

GET request su quello
highestPost essendo il highest_post_number del thread

Ciò significa che sei limitato nella frequenza delle richieste. Se vuoi tenere traccia dei nuovi post, il pooling in questo modo è molto inefficiente. Posso suggerire di usare i webhook? In questo modo puoi reagire ai nuovi post, invece di fare il pooling anche quando non sta succedendo nulla.

Certo, posso dare un’occhiata ai webhook.

Sai come disabilitare i limiti di frequenza delle risposte? Credo che ne abbiamo già modificati alcuni in app.yml, tutto ciò che riguardava l’API da questo link:

È qualcosa di specifico in Nginx che dobbiamo esplorare?

C’è un template nginx che viene aggiunto per impostazione predefinita. Sarà una delle primissime righe dell’app.yml. Potresti voler rimuovere quello sui limiti di frequenza e ricostruire affinché abbia effetto.

3 Mi Piace

w00t. Ci proverò. Grazie per l’assistenza!

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