Corrija erros 429 para o componente de tema personalizado

O que você gostaria que fosse feito?
Temos um componente de tema personalizado (o “Bio Book”) que começou a retornar erros 429 recentemente. Isso começou em 26 de novembro. Antes disso, estava funcionando.

O Bio Book manipula a rota /u para exibir informações do usuário de uma forma mais bonita. Para isso, ele também solicitava informações adicionais do usuário de cada arquivo .json de cada usuário. O Bio Book fazia lazy loading para evitar erros 429, mas isso parou de funcionar há quatro dias — não tenho certeza do que aconteceu há quatro dias, mas a equipe do Discourse confirmou que não houve nenhuma alteração no limite de taxa.

O repositório do código é: GitHub - sethgodin/discourse_biobook: Bio Book feature for Discourse

O desenvolvedor que originalmente criou o componente para nós não está disponível para realizar essa correção, então precisamos de alguém que possa entrar no código existente e resolver o(s) erro(s) para que o componente de tema personalizado volte a funcionar.

Não queremos nenhuma nova funcionalidade, não precisamos alterar nenhuma funcionalidade existente e não queremos refatorar nada. Queremos apenas resolver os erros 429 e restaurar o Bio Book à sua funcionalidade anterior.

Quando você precisa que seja feito?
Gostaríamos que fosse concluído até segunda-feira, 6 de janeiro de 2020.

Qual é o seu orçamento, em $ USD, que você pode oferecer para esta tarefa?
Nosso orçamento é de $250 para resolver os erros 429.

Entendemos que resolver os erros 429 corrigirá todos os problemas subjacentes. Se não for esse o caso, por favor, nos avise e ajustaremos nosso orçamento de acordo.

1 curtida

Como você instalou o Discourse?

Os endereços IP dos usuários estão sendo registrados corretamente?

1 curtida

Nós estamos hospedados pelo Discourse em um plano de nível empresarial.

Acredito que sim, mas não tenho certeza. Como posso saber?

1 curtida

Então, ele faz lazy loading em grupos de 50 usuários, e o valor padrão de max_reqs_per_ip_per_10_seconds também está definido como 50. Incluindo a página principal, esse código fará pelo menos 51 requisições (em menos de 10 segundos), excedendo assim o limite de taxa.

Em outras palavras: não vejo como isso poderia ter funcionado antes…?

3 curtidas

Então está funcionando corretamente. Que pena. Teria sido muito mais fácil corrigir um problema de configuração do que o que o Richard descreve.

Também não tenho certeza de como, mas estava funcionando corretamente por mais de um ano. Até 4 dias atrás, nunca lidamos com um erro 429.

Ativamos o limite de taxa globalmente para todas as instâncias do Discourse em todo o mundo na semana passada. Podemos investigar o plugin na próxima semana e verificar se existe uma API em lote razoável que ele possa usar em vez disso.

6 curtidas

Uau, recentemente me deparei com o mesmo problema por um motivo muito similar (buscar informações do usuário para exibir cards!), implementei uma pequena solução alternativa para corrigi-lo por enquanto e vim aos fóruns literalmente para descobrir se havia uma API em lote que eu não conhecia… ou para aprender como implementar uma rota assim.

1 curtida

@sam Ahh… isso é muito bom de saber. Muito obrigado pelo contexto!

1 curtida

Desculpe, Alex, eu te passei uma informação errada na minha resposta da semana passada. Eu não percebi que aquela alteração não tinha sido implantada há algum tempo.

4 curtidas

Tudo certo, @HAWK, obrigado por dizer isso.

Vou aguardar um pouco com este projeto até receber uma resposta do @sam e da equipe sobre se há uma API em lote razoável que possamos usar em vez disso.

Obrigado a todos.

1 curtida

Olá Alex,

Acabei de dar uma olhada no componente do tema. Ele realmente introduz uma quantidade enorme de trabalho e um grande número de requisitos. A limitação de taxa que implementamos está totalmente correta aqui, funcionando como um sistema imunológico.

Vamos resolver isso, mas pode levar uma ou duas semanas para concluir tudo.

Parece que a grande questão aqui é que o diretório precisa começar a retornar todas as informações que os cartões de usuário possuem. O complicado é que os componentes do tema não têm a capacidade de modificar o servidor, então precisaremos fazer algumas alterações na API principal que nos permitam solicitar cartões de usuário de várias pessoas de uma só vez.

Vamos te atualizar conforme avançarmos. Uma informação rápida sobre o orçamento: faremos isso gratuitamente, mas estimo cerca de dois dias de trabalho para corrigir isso, o que está muito acima do orçamento inicial. Parece simples à primeira vista, mas exige mudanças internas muito complexas.

8 curtidas

Obrigado, @sam e equipe, isso é extremamente útil. As alterações principais na API certamente nos ajudarão e, imagino, a outros usuários do Discourse. Ficamos felizes em poder usar o Bio Book e fazê-lo funcionar de forma mais lógica. Uma ou duas semanas funcionam para nós.

Entendo sua posição sobre o orçamento inicial e o escopo da correção. É extremamente generoso da sua parte fazer isso gratuitamente. Obrigado.

Aguardaremos mais informações.

4 curtidas

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