Estou com o retorno abaixo quando tento fazer processos sequenciais para atualização da Empresa:
{
response: “Request failed with status code 429”,
status: undefined,
options: undefined,
message: “Request failed with status code 429”,
name: “HttpException”,
}
Os processos que envio são na seguinte sequencia:
Alterar empresa
Upload de certificado
Enviar logo
Alterar configuração de NF-e
Alterar configuração de NFC-e
Alterar configuração de NFS-e
Quando debugo a aplicação na maioria das vezes não ocorre erro. Por isso testei aguardando 2 segundos entre um processo e outro e sem o debug o 429 é retornado, inclusive de forma aleatória entre os processos. As vezes sem o debug não ocorre erro.
Os endpoints são os relacionados a cada um dos processos mencionados e estou fazendo com uma única empresa, mas executo todos na sequencia abaixo. Não tem um endpoint específico que retorna o 429 e o erro é retornado de forma aleatória, ou seja, as vezes é no primeiro processo (envio), as vezes no terceiro e assim sucessivamente. Seguem os processos e endpoints utilizados:
No momento sim, pois para esses endpoints de configuração, o rate limite é de 4 requisições por segundo. Então, se realmente você faz essas 6 requisições dentro de um segundo acaba chegando no limite.
Como alternativa, no momento, sugiro colocar um tempo de 500 ms entre as requisições, isso deve evitar que se chegue no limite.
No processo de atualização da Empresa, você sempre chama todos esses endpoints em sequência, mesmo que os dados não tenham sido alterados? O usuário alterando apenas o ambiente de NFS-e, ou apenas a inscrição estadual, mesmo assim todas as requisições acima são enviadas para a API?
Caso isso esteja ocorrendo, então seria interessante também você alterar o fluxo da sua aplicação para não utilizar de forma desnecessária a API.
@arimateia , sim sempre que o usuário altera a empresa enviamos para todos esses endpoits, pois os dados da empresa estão em uma única tela e fazem parte de um único registro. Mas estarei vendo a possibilidade de identificar isoladamente de modo que não seja consumido todos os endpoints.
A título de exemplo, você pode dar uma conferida no cadastro de Empresa em nosso Console Web. Nele, todas essas operações são feitas de forma isolada, apenas quando requisitada pelo usuário.
Estou retomando essa questão e coloquei um intervalo de 1000 ms entre as requisições e mesmo assim tenho o retorno do 429.
Será que poderia me ajudar a identificar?
Ressalto que estou construindo uma API que poderá ser compartilhada entre várias contas, ou seja, pode ocorrer de várias empresas enviar requisições à Nuvem Fiscal em um curto prazo de tempo. As limitações poderá gerar um grande problema para este caso de uso.
O recomendado é que você gere o token apenas uma vez, armazene-o e utilize-o em todas as requisições subsequentes. Somente quando estiver próximo da data de expiração é que um novo token deve ser gerado.