Consultores Daniel InfoCotidiano Posted September 26 Consultores Posted September 26 Nos recomendamos por aqui, pois outros usuários ou outros consultores podem opinar sobre o assunto. E aqui fica mais organizado. A NFeLib funciona normalmente na API ou ela nao esta em API? Daniel de Morais (Infocotidiano) Ajude o Projeto ACBr crescer - Assine o SAC (15) 2105-0750 (15)99790-2976. Discord
Membros Pro Dev Comercial Posted September 26 Author Membros Pro Posted September 26 Segue um exemplo simples o que estou usando para teste o comportamento da lib multi thread. nesse exemplo é possível trocar entres a lib nfe e mdfe e ver o comportamento delas https://gitlab.com/julio.novaes/exemploacbr Para executar o exemplo basta ter o ambiente configurado e mudar o caminhos para lib no código. O problema é quando executamos com mdfe ela quebra de forma intermitente
Consultores Daniel InfoCotidiano Posted September 26 Consultores Posted September 26 2 minutos atrás, Dev Comercial disse: Para executar o exemplo basta ter o ambiente configurado e mudar o caminhos para lib no código. Vou testar amanha pela manha, qq te chamo p me ajudar ! Ja que não desenvolvo em Go Daniel de Morais (Infocotidiano) Ajude o Projeto ACBr crescer - Assine o SAC (15) 2105-0750 (15)99790-2976. Discord
Consultores Daniel InfoCotidiano Posted September 27 Consultores Posted September 27 @Dev Comercial Olhando o log gerado qdo executo o teste em meu ambiente notei que antes de fechar, o buflen muito alto. Ao menos nao acontece na NFe Daniel de Morais (Infocotidiano) Ajude o Projeto ACBr crescer - Assine o SAC (15) 2105-0750 (15)99790-2976. Discord
Membros Pro Dev Comercial Posted October 1 Author Membros Pro Posted October 1 Certo, mas olhando o código das duas libs é para o comportamento ser igual para as duas né ? Já que para esse método de versão é o acbrlibcomum que resolve.
Consultores Daniel InfoCotidiano Posted October 1 Consultores Posted October 1 56 minutos atrás, Dev Comercial disse: Certo, mas olhando o código das duas libs é para o comportamento ser igual para as duas n Ai q esta quem informa o buffer é sua aplicacao.. nao domino o Go... acredito que ela inicie em um valor e vai calculando. no bufferlen.. da nfe esta ok. no da MDFe, alguma coisa esta trazendo este numero alto. em mensagem anterior qdo fiz um teste, vc disse q com uma chamada funciona.. mas qdo tem varias nao. entao algum ponto esta gerando este numero q esta estourando o buffer. Pode testar fixando o buffer do mdfe limitando o buffer a um numero fixo, exemplo 256? Daniel de Morais (Infocotidiano) Ajude o Projeto ACBr crescer - Assine o SAC (15) 2105-0750 (15)99790-2976. Discord
Membros Pro Dev Comercial Posted October 1 Author Membros Pro Posted October 1 O valor o buffer é fixo em 255 da para ver isso na linha 17 e na função bufferNew que esta no exemplo
Consultores Daniel InfoCotidiano Posted October 1 Consultores Posted October 1 Criamos aqui uma API para poder testar o comportamento que esta acontecendo em seu ambiente. Lembrando que não temos relatos semelhantes de erro com a lib. Fizemos testes com mais de 200 requisições e não tivemos o problema. Vou anexar o log p vc ver o comportamento e como eu expliquei acima, ele retorna o buffer recebido pela aplicação. Vou anexar o meu log ACBrLibMDFe-20241001.log Daniel de Morais (Infocotidiano) Ajude o Projeto ACBr crescer - Assine o SAC (15) 2105-0750 (15)99790-2976. Discord
Membros Pro Dev Comercial Posted October 2 Author Membros Pro Posted October 2 Bom dia pode me mandar esse código python para eu verificar a diferença para o meu. temos o mesmo problema aqui no c# que inclusive contribuirmos com vocês na atualização para dotnet 8. O mais estranho que no nosso exemplo o problema não ocorre quando a lib é nfe.
Consultores Daniel InfoCotidiano Posted October 2 Consultores Posted October 2 1 minuto atrás, Dev Comercial disse: Bom dia pode me mandar esse código python para eu verificar a diferença para o meu Claro que sim, ja ja vou subir para o svn e te aviso. Se vc se desejar depois contribuir com exemplo simples Go, não temos nenhum ainda. será bem vindo. Ja te aviso assim q subir. Daniel de Morais (Infocotidiano) Ajude o Projeto ACBr crescer - Assine o SAC (15) 2105-0750 (15)99790-2976. Discord
Consultores Daniel InfoCotidiano Posted October 2 Consultores Posted October 2 Segue o link dos exemplos MDFe https://svn.code.sf.net/p/acbr/code/trunk2/Projetos/ACBrLib/Demos/Python/MDFe/ vc vai utilizar API_MDFeMT.py crie dentro da pasta da sua aplicação ACBrLib\x64 Salve nela libacbrmdfe64.so (para linux) ou ACBrMDFe64.dll com as dependencias (libxml2 e openssl) (para Windows). A pasta de Schemas q está em dependência, deixe na pasta da sua aplicação. Exemplo: para acessar a API localmente http://localhost:5000/versao para acessar remotamente troque o localhost pelo ip da maquina q esta executando a API, lembrando de redirecionar a porta no modem para o servidor da API É um exemplo básico, com a Lib Multthread. mas nas requisicoes não estou usando threads.. tah entrando na fila. dependendo de quantas requisicoes por seguindo por nao ter criado thread na consulta python pode dar erro de multas consultas por segundo ou Too Many Requests Daniel de Morais (Infocotidiano) Ajude o Projeto ACBr crescer - Assine o SAC (15) 2105-0750 (15)99790-2976. Discord
Membros Pro Dev Comercial Posted October 2 Author Membros Pro Posted October 2 Executei aqui seu código. Realmente com uma request e um cliente por vez funciona. Testamos com multiplas request e clientes que é o que código go simula e nesse caso ocorre o erro. Para realizar os teste em seu código usamos o programa apache ab. Segue o comando. ab -n 10 -c 5 http://localhost:5000/versao Obs: esse programa pode ser instalado com apt install ab ACBrLibMDFe-20241002.log
Membros Pro Dev Comercial Posted October 2 Author Membros Pro Posted October 2 Fizemos o teste substituindo a lib mdfe pela nfe no código python e na nfe não ocorre o erro. Um comportamento similar ao da aplicação go. O teste também foi feito com o mesmo comando ab
Consultores Daniel InfoCotidiano Posted October 2 Consultores Posted October 2 23 minutos atrás, Dev Comercial disse: Testamos com multiplas request e clientes que é o que código go simula e nesse caso ocorre o err isso pq esta em fila como comentei.. é um exemplo basico. Para aceitar "n" requisicoes ao mesmo tempo precisa criar threads para cada requisicao ser idependente 1 minuto atrás, Dev Comercial disse: Fizemos o teste substituindo a lib mdfe pela nfe no código python e na nfe não ocorre o erro. Um comportamento similar ao da aplicação go. O teste também foi feito com o mesmo comando ab de qualquer forma vou testar aqui tbm e ver se identifico algo baseado nesta informacao. Obrigado ! Daniel de Morais (Infocotidiano) Ajude o Projeto ACBr crescer - Assine o SAC (15) 2105-0750 (15)99790-2976. Discord
Membros Pro Dev Comercial Posted October 2 Author Membros Pro Posted October 2 Entendi. Mas como esse exemplo Python prova que a lib está funcionando corretamente em multithread? Porque o problema apresentado é nessa situação. A questão não é usar um servidor. O exemplo desenvolvido em go não usa um servidor exatamente por isso. Ele foi construído com o mínimo de dependências possíveis para mostrar que é a lib em situação de multithread que está com problema. Resumindo: LibNFe: * Funciona com multithread e multiplas requisições no golang * Funciona com multithread e multiplas requisições no python mesmo sem nenhuma fila ou implementação explicita de threads Não apresenta "segmentation error" LibMDFe: * Não funciona com multithread e multiplas requisições no golang * Não funciona com multithread e multiplas requisições no python mesmo sem nenhuma fila ou implementação explicita de threads Apresenta "segmentation error" Logo se as duas aplicações tem o mesmo comportamento usando as mesmas duas libs, o problema não é a lib MDFe em si? Implementar uma fila em uma aplicação python tornaria a aplicação single thread e não multi thread uma vez que seria necessário aguardar uma requisição terminar para ir para a outra.
Consultores Daniel InfoCotidiano Posted October 2 Consultores Posted October 2 Como disse no post anterior, vou realizar o mesmo teste na NFe sem criar threads na requisisao p ver o comportamento e analisar as duas libs 10 minutos atrás, Daniel InfoCotidiano disse: de qualquer forma vou testar aqui tbm e ver se identifico algo baseado nesta informacao. Obrigado ! E te reporto .. pq ambas era p ter o mesmo comportamento. Vou realizar os testes e verificar, te reporto em breve. Daniel de Morais (Infocotidiano) Ajude o Projeto ACBr crescer - Assine o SAC (15) 2105-0750 (15)99790-2976. Discord
Consultores Daniel InfoCotidiano Posted October 4 Consultores Posted October 4 @Dev Comercial Só para posicionar que estamos em testes com a lib junto com o time. assim que concluirmos reportamos aqui. Daniel de Morais (Infocotidiano) Ajude o Projeto ACBr crescer - Assine o SAC (15) 2105-0750 (15)99790-2976. Discord
Membros Pro Dev Comercial Posted October 11 Author Membros Pro Posted October 11 Bom dia. Tem algum progresso ?
Consultores Daniel InfoCotidiano Posted October 11 Consultores Posted October 11 48 minutos atrás, Dev Comercial disse: Bom dia. Tem algum progresso ? Bom dia ! Estamos com parte do time trabalhando nesta análise e esta como prioridade. Assim que concluído reporto aqui. Obrigado pela compreensão Daniel de Morais (Infocotidiano) Ajude o Projeto ACBr crescer - Assine o SAC (15) 2105-0750 (15)99790-2976. Discord
Membros Pro Dev Comercial Posted October 22 Author Membros Pro Posted October 22 Bom dia. alguma novidade ?
Consultores Daniel InfoCotidiano Posted October 22 Consultores Posted October 22 35 minutos atrás, Dev Comercial disse: Bom dia. alguma novidade ? temos um time trabalhando nesta tarefa com prioridade. Ainda não está concluida, teve um avanço mas nao foi concluida. assim que sinalizada como concluida, volto p reportar para que vc possa testar e finalizarmos a TK Daniel de Morais (Infocotidiano) Ajude o Projeto ACBr crescer - Assine o SAC (15) 2105-0750 (15)99790-2976. Discord
Membros Pro Dev Comercial Posted November 4 Author Membros Pro Posted November 4 Bom dia. Tem alguma novidade ou um prazo para a resolução ?
Consultores Daniel InfoCotidiano Posted November 4 Consultores Posted November 4 Bom dia @Dev Comercial Ainda estamos com o time com esta tarefa como prioridade. Foram feitas algumas alterações, mas ainda esta ocorrendo erros. Vou obter mais informacoes e retorno. Daniel de Morais (Infocotidiano) Ajude o Projeto ACBr crescer - Assine o SAC (15) 2105-0750 (15)99790-2976. Discord
Membros Pro Dev Comercial Posted November 11 Author Membros Pro Posted November 11 Boa tarde. alguma atualização ?
Consultores Daniel InfoCotidiano Posted November 12 Consultores Posted November 12 Bom dia ! Vou verificar assim que o time chegar e lhe posiciono. Daniel de Morais (Infocotidiano) Ajude o Projeto ACBr crescer - Assine o SAC (15) 2105-0750 (15)99790-2976. Discord
Recommended Posts