Jump to content

dev botao

Lentidão ao gerar arquivo remessa


Go to solution Solved by DeveloperATS,
  • Este tópico foi criado há 341 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • Membros Pro
Posted

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.

  • Consultores
Posted

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

  • Membros Pro
Posted
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. 

  • Membros Pro
  • Solution
Posted
47 minutos atrás, Daniel InfoCotidiano disse:

mais uma pergunta é API ou CNAB (qual banco esta usando) ?

 

Desenvolvi uma API em Java. 
É utilizado o CNAB400 do banco bradesco 

  • Consultores
Posted

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

  • Membros Pro
Posted
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. 

  • Consultores
Posted

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

  • Membros Pro
Posted
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  

  • Consultores
Posted

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

  • Consultores
Posted
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)
 

  • Like 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

  • Membros Pro
Posted
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

  • Consultores
Posted
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..

  • Like 1
  • Membros Pro
Posted
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  

  • 2 months later...
  • Este tópico foi criado há 341 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Guest
This topic is now closed to further replies.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.

The popup will be closed in 10 seconds...