Você realizou esta ação muitas vezes demais

Recebo o seguinte erro várias vezes:

{"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.

Vá até Configurações > Limite de Taxa. Altere os valores como preferir.

Olá @IAmGav,

Configurei o seguinte:

  1. limite de taxa para criar tópico = 0 (Após criar um tópico, os usuários devem aguardar (n) segundos antes de criar outro tópico.)
  2. limite de taxa para criar postagem = 0 (Após postar, os usuários devem aguardar (n) segundos antes de criar outra postagem.)
  3. limite de taxa para novos usuários criarem tópicos = 0 (Após criar um tópico, novos usuários devem aguardar (n) segundos antes de criar outro tópico.)
  4. limite de taxa para novos usuários criarem postagens = 0 (Após postar, novos usuários devem aguardar (n) segundos antes de criar outra postagem.)

No entanto, o erro persiste. Há algum outro limite que eu precise verificar?

Desabilitei todas as configurações mencionadas em:

Mas, mesmo assim, recebo o erro “Você realizou esta ação muitas vezes”.
Há algo mais que eu precise fazer?

Então, o que você está fazendo exatamente que está causando esse erro?

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.

Então, quais são os 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

e você tem certeza de que está ficando abaixo desses números?

Olá :wave:
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:

  1. Obtenho os tópicos mais recentes usando o endpoint /latest.json
  2. Obtenho sequencialmente todos os tópicos via /t/:id para que eu possa obter o fluxo de posts e paginar através dele
  3. 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

Tenho curiosidade se adicionar ?print=true ajudará a reduzir o número de chamadas de API ao ler?

Isso permitirá que você obtenha 1000 posts em uma única chamada de API.

Ah, por algumas razões eu pensei que ?print tinha limites de taxa ainda mais rigorosos

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)

Obrigado por analisar :bow: