{"errors":["Você realizou esta ação muitas vezes. Por favor, aguarde alguns segundos antes de tentar novamente."],"error_type":"rate_limit","extras":{"wait_seconds":0}}
Como posso eliminar esse erro? Por favor, sugira uma solução.
Estou tentando criar Tópicos usando a API. Ao tentar criar cerca de 100 tópicos por meio da API, estou recebendo este erro.
Também estou tentando atualizar as Tags dos meus Tópicos via API; há centenas de tópicos no meu fórum que não possuem tags. Por isso, estou atualizando as tags deles por meio da API.
Olá
Estou enfrentando o mesmo problema, mas com ações de leitura
Estou construindo uma integração com o Discourse e uso a API para ler muitos posts. Não faço nenhuma operação de escrita, apenas leitura. Para obter os posts mais recentes, faço o seguinte:
Obtenho os tópicos mais recentes usando o endpoint /latest.json
Obtenho sequencialmente todos os tópicos via /t/:id para que eu possa obter o fluxo de posts e paginar através dele
Se houver mais de 20 posts nesse tópico, obtenho seus IDs do “stream” e os busco sequencialmente em lotes com tamanho 20
Também faço todas as requisições em uma fila e tento enviar não mais que ~25 requisições por 10 segundos, mas ainda assim frequentemente vejo o erro “Você realizou esta ação muitas vezes” para requisições de leitura de tópicos ou posts. Fui às configurações do Discourse, mas não consigo encontrar nenhum limite para Leitura aqui. Só consigo ver o limite para “Criar tópicos” e outras operações de escrita
Há algo que eu possa fazer a respeito? Obrigado por qualquer dica e desculpe por trazer um tópico antigo à tona.
Parece que estou atingindo o limite max_admin_api_reqs_per_minute. Ele pode ser personalizado? Não consigo encontrá-lo em Configurações > Limites de taxa
EDIT: na verdade, parece que dois limites entram em vigor lá. admin_api_key_rate_limit e ip_10_secs_limit
Mas parece que não se trata do uso de ?print=true, mas sim de outra coisa. Definitivamente vou tentar.
Mas, pelo que entendi, isso só ajudará com tópicos que têm mais de 20 posts. Acredito que a maioria dos nossos tópicos tem menos, então o gargalo real são muitas solicitações para tópicos.
Sim, isso é para limitar usuários. Se você tiver uma chave de API de administrador, essa configuração não o afetará.
Ah, sim, muito provavelmente então.
Além de apenas verificar erros 429 e diminuir a velocidade para a quantidade especificada, há algumas opções.
Eu começaria usando o plugin Data Explorer para escrever uma consulta para obter todos os tópicos que você procura. Acredito que ele retornará até 1000 resultados. Você pode então usar a API para chamar a consulta e obter a resposta.
Dependendo do seu caso de uso, webhooks também podem ser úteis aqui. Você pode configurá-los para cada novo tópico e postagem e apenas ouvir todo o conteúdo mais recente.
Se você ainda determinar que precisa aumentar os limites de taxa da API, isso é algo que podemos fazer, mas apenas para sites em nosso plano empresarial, pois eles não estão em nossa hospedagem compartilhada pro/business.
O problema com o uso do plugin data explorer é que não somos os únicos usuários da integração do Discourse. Nós (fibery.io) permitimos que nossos clientes integrem suas instâncias do discourse para que possam sincronizar os dados perfeitamente em nossa ferramenta.
Webhooks são uma adição interessante, mas não ajudarão durante a primeira sincronização (que é a mais pesada, por exemplo, tópicos e posts do último mês). Depois disso, fazemos sincronizações agendadas para novos dados e elas não são um problema.
Verificar 429 e tentar novamente funciona bem, apenas pode ser lento às vezes)