Consultores Daniel InfoCotidiano Postado 26 Setembro Consultores Postado 26 Setembro 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 Postado 26 Setembro Autor Membros Pro Postado 26 Setembro 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 Postado 26 Setembro Consultores Postado 26 Setembro 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 Postado 27 Setembro Consultores Postado 27 Setembro @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 Postado 1 Outubro Autor Membros Pro Postado 1 Outubro 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 Postado 1 Outubro Consultores Postado 1 Outubro 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 Postado 1 Outubro Autor Membros Pro Postado 1 Outubro 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 Postado 1 Outubro Consultores Postado 1 Outubro 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 Postado 2 Outubro Autor Membros Pro Postado 2 Outubro 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 Postado 2 Outubro Consultores Postado 2 Outubro 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 Postado 2 Outubro Consultores Postado 2 Outubro 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 Postado 2 Outubro Autor Membros Pro Postado 2 Outubro 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 Postado 2 Outubro Autor Membros Pro Postado 2 Outubro 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 Postado 2 Outubro Consultores Postado 2 Outubro 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 Postado 2 Outubro Autor Membros Pro Postado 2 Outubro 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 Postado 2 Outubro Consultores Postado 2 Outubro 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 Postado 4 Outubro Consultores Postado 4 Outubro @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 Postado 11 Outubro Autor Membros Pro Postado 11 Outubro Bom dia. Tem algum progresso ?
Consultores Daniel InfoCotidiano Postado 11 Outubro Consultores Postado 11 Outubro 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 Postado 22 Outubro Autor Membros Pro Postado 22 Outubro Bom dia. alguma novidade ?
Consultores Daniel InfoCotidiano Postado 22 Outubro Consultores Postado 22 Outubro 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 Postado 4 Novembro Autor Membros Pro Postado 4 Novembro Bom dia. Tem alguma novidade ou um prazo para a resolução ?
Consultores Daniel InfoCotidiano Postado 4 Novembro Consultores Postado 4 Novembro 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 Postado 11 Novembro Autor Membros Pro Postado 11 Novembro Boa tarde. alguma atualização ?
Consultores Daniel InfoCotidiano Postado 12 Novembro Consultores Postado 12 Novembro 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