API do Discourse Gerando 429

Olá,

Estou tentando usar a API do Discourse para dar respostas bobas em um fórum. Por exemplo, se alguém disser “Linux” em um tópico, o Discobot responderá “Você quer dizer GNU/Linux?”.

Funciona, a menos que alguém responda com a mesma frase, então recebo um monte de respostas 429 ou vazias por dois minutos (é quase exatamente dois minutos), momento em que a API começará a lidar com as respostas normalmente novamente.

Por exemplo:

Linux
FOSS
dotNET
Java
Linux

Isso funcionará corretamente. No entanto:

Linux
FOSS
dotNET
Linux
Linux

Isso quebrará.

Alguma ideia a que se refere a janela de dois minutos? Brincamos com as configurações do app.yml e ajustamos os limites de taxa da API. Não pareceu ter nenhum efeito.

Obrigado!

Precisamos de mais informações. Qual é o endpoint da API que você está chamando e recebendo 429?

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

GET request nisso
highestPost sendo o highest_post_number do tópico

Isso significa que você está sendo limitado pela taxa de requisições. Se você quiser acompanhar novas postagens, fazer polling dessa forma é muito ineficiente. Posso sugerir o uso de webhooks? Dessa forma, você pode reagir a novas postagens em vez de fazer polling mesmo quando nada está acontecendo.

Claro, posso dar uma olhada nos web-hooks.

Você sabe como desativar os limites de taxa de resposta? Acredito que já alteramos alguns em app.yml, qualquer coisa que se referisse à API deste link:

Isso é algo específico no Nginx que precisamos explorar?

Existe um template do nginx que é adicionado por padrão. Ele será uma das primeiras linhas do app.yml. Você pode querer remover o que trata sobre limites de taxa e reconstruir para que ele tenha efeito.

3 curtidas

w00t. Tentarei isso. Obrigado pela ajuda!

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