Ir para conteúdo
  • Cadastre-se

dev botao

Lentidão ao gerar arquivo remessa


Ver Solução Respondido por DeveloperATS,

Recommended Posts

  • Membros Pro

Boa tarde. 

Utilizo o ACBrLibBoleto-0.2.0.269 para emissão do boleto e geração do arquivo remessa.

Porem reparei que há uma lentidão na geração de arquivo remessa com vários títulos juntos. A suspeita da demora é no método 

int Boleto_IncluirTitulos(Pointer libHandler, String eArquivoIni, String eTpSaida);

O teste foi realizado com 16 títulos e houve uma demora de 22 segundos para emitir o arquivo. 

Obrigado.

Link para o comentário
Compartilhar em outros sites

  • Consultores

Bom dia @DeveloperATS!
Para que eu possa testar em meu ambiente , preciso de um pouco mais de informações.
Todos os 16 titulos são para mesma conta, mesmo dados de cedente ?
você utiliza alto nivel ou ini ?
Quando vc inclui os titulos, vc apenas envia o titulo ou envia repetidamente todos dados do cedente/conta etc?
Esta em qual ambiente linux ou windows , pelo ponteiro notei que usa MT.
Qual sua linguagem de programação ?
 

Consultor SAC ACBr

Daniel de Morais (Infocotidiano)
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

Link para o comentário
Compartilhar em outros sites

  • Membros Pro
1 minuto atrás, Daniel InfoCotidiano disse:

Bom dia @DeveloperATS!
Para que eu possa testar em meu ambiente , preciso de um pouco mais de informações.
Todos os 16 titulos são para mesma conta, mesmo dados de cedente ?
você utiliza alto nivel ou ini ?
Quando vc inclui os titulos, vc apenas envia o titulo ou envia repetidamente todos dados do cedente/conta etc?
Esta em qual ambiente linux ou windows , pelo ponteiro notei que usa MT.
Qual sua linguagem de programação ?
 

Olá, bom dia. 

Todos os títulos são para o mesmo cedente e mesma conta.

É utilizado ini em memoria; é enviado apenas os títulos repetitivos.

O ambiente de homologação e produção é Windows e a linguagem utilizada é Java. 

Link para o comentário
Compartilhar em outros sites

  • Consultores

Em nossos teste com java eu utilizo INI demorou alguns segundos. e eu mando da seguinte forma, vou  anexar meu ini aqui.
Vc consegue testar com meu ini? Titulo09Bol.ini

Uma dica de um dos nossos consultores  @antonio.carlos é vc utilizar cada ponteiro do multthread uma lista de titulos igual estou te enviando no incluir titulos.
 

Consultor SAC ACBr

Daniel de Morais (Infocotidiano)
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

Link para o comentário
Compartilhar em outros sites

  • Membros Pro
49 minutos atrás, Daniel InfoCotidiano disse:

Em nossos teste com java eu utilizo INI demorou alguns segundos. e eu mando da seguinte forma, vou  anexar meu ini aqui.
Vc consegue testar com meu ini? Titulo09Bol.ini

Uma dica de um dos nossos consultores  @antonio.carlos é vc utilizar cada ponteiro do multthread uma lista de titulos igual estou te enviando no incluir titulos.
 

Olá bom dia. 

Essa demora foi de quantos segundos? 

E foram utilizados somente 9 títulos? 

Outra duvida, o que seria esse "ponteiro do multithread", como ele poderia ser usado no Java e como ele afetaria a performance, considerando que a geração de um único arquivo sozinho já está lenta?


Obrigado. 

Link para o comentário
Compartilhar em outros sites

  • Consultores

Sim utilizei 9 títulos em meu ambiente;
Em um titulo no java demorou 2 a 3 segundos.
Sobre mult-thread, vou te mandar um link para melhor entendimento, mas na pratica ele executa varias tarefas simultâneas;
Entao vc nao precisa esperar incluir uma lista de titulo para incluir outra.. pode ter varias requisições ao mesmo tempo.
https://acbr.sourceforge.io/ACBrLib/ACBrLibeMultiThread.html

 

Consultor SAC ACBr

Daniel de Morais (Infocotidiano)
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

Link para o comentário
Compartilhar em outros sites

  • Membros Pro
1 hora atrás, Daniel InfoCotidiano disse:

Sim utilizei 9 títulos em meu ambiente;
Em um titulo no java demorou 2 a 3 segundos.
Sobre mult-thread, vou te mandar um link para melhor entendimento, mas na pratica ele executa varias tarefas simultâneas;
Entao vc nao precisa esperar incluir uma lista de titulo para incluir outra.. pode ter varias requisições ao mesmo tempo.
https://acbr.sourceforge.io/ACBrLib/ACBrLibeMultiThread.html

 

Beleza

Te perguntar, tem a possibilidade de realizar um teste com  16, 32, 77 títulos para analisarmos e compararmos o tempo gasto por vocês para emitirem o arquivo?

Obrigado  

Link para o comentário
Compartilhar em outros sites

  • Consultores

eu nao tenho um server especifico para isso. mas tenho java aqui no meu desktop... nao sei se serve p comparação.
mas pode me gerar o ini com a quantidade de registros q vc precisa tipo 77, q carrego aqui no meu ambiente de teste.

Pode aproveitar e mandar o log gerado pela lib?
se nestes boletos conter dados sensiveis, pode encaminhar por email por favor
[email protected] no corpo da mensagem cole o link deste post.

Consultor SAC ACBr

Daniel de Morais (Infocotidiano)
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

Link para o comentário
Compartilhar em outros sites

  • Consultores
4 horas atrás, DeveloperATS disse:

títulos para analisarmos e compararmos o tempo gasto por vocês para emitirem o arquivo?

testando aqui o lote q vc me enviou. enviando todos juntos acabou de bater 1h e não terminou.
Falando com o time, o ideal é usar multithread criando uma instância para cada boleto.. assim não vai ficar travado, cada thread vai realizar uma inclusão simultaneamente.
Para isso tem q usar a Lib da pasta MT (multthread)
 

  • Curtir 1
Consultor SAC ACBr

Daniel de Morais (Infocotidiano)
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

Link para o comentário
Compartilhar em outros sites

  • Membros Pro
8 minutos atrás, Daniel InfoCotidiano disse:

testando aqui o lote q vc me enviou. enviando todos juntos acabou de bater 1h e não terminou.
Falando com o time, o ideal é usar multithread criando uma instância para cada boleto.. assim não vai ficar travado, cada thread vai realizar uma inclusão simultaneamente.
Para isso tem q usar a Lib da pasta MT (multthread)
 

Já estou usando a DLL da pasta MT->StdCall

Link para o comentário
Compartilhar em outros sites

  • Consultores
5 minutos atrás, DeveloperATS disse:

Já estou usando a DLL da pasta MT->StdCall

Mesmo utilizando Lib versão MT..
Você esta chamando o método apenas 1 vez e passando todos os títulos, certo ?.. dessa forma o comportamento esta sendo em SingleThread..
 

Você pode chamar método IncluirTitulos e passar um título por vez.. pode reduzir o tempo de processamento.. são muitos títulos, realmente vai ocorrer uma certa demora.
Ou então, você precisa criar N instancias.. cada instancia terá 1 parâmetro Handle..
Quando chamando o método Incluir Títulos passando o valor de cada Handle no método.. e passa 1 títulos por instancia..

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • Membros Pro
12 minutos atrás, antonio.carlos disse:

Mesmo utilizando Lib versão MT..
Você esta chamando o método apenas 1 vez e passando todos os títulos.. dessa forma o comportamento esta sendo em SingleThread..

Você precisa criar N instancias.. cada instancia terá 1 parâmetro Handle..
Quando chamando o método Incluir Títulos passando o valor de cada Handle no método.. e passa 1 títulos por instancia..

Poderia explicar melhor o funcionamento? 
Pois utilizamos a linguagem Java e emitimos 1 arquivo remessa contendo 77 títulos neste arquivo. 

Sendo inviável emitir um arquivo remessa para cada titulo  

Link para o comentário
Compartilhar em outros sites

  • 2 meses depois ...
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.

The popup will be closed in 10 segundos...
The popup will be closed in 10 segundos...