| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 11/02/2010 10:25:45
|
Daniel.F
GUJ Ranger
Membro desde: 29/03/2007 18:30:39
Mensagens: 909
Offline
|
Bom dia, PessoaLL.
Estou na seguinte situação tenho que gerar cerca de 3000 boletos de uma só vez
pelo Stella pemitir que gerar mais de boleto de só vez, e possuir metodos que retorna o pdf
em array de bytes e png além da documentação melhor também.
Fui fazer um teste agora gerando 500 boletos de uma só vez o Stella levou cerca de
11 minutos para gera-los a ainda o arquivo final tem 64 mb, quando cada boleto tem 47 kb.
Alguém teve esta experiência gerando esta quantidade de boletos com Stella
ou outro framework ou tem alguma sugestão para resolver este gargalo.
Desde já agradeço.
|
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 11/02/2010 10:41:25
|
thingol
Moderador
Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline
|
Você não poderia gerar PDFs menores (com menos de 100 páginas cada um?)
|
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 11/02/2010 10:43:52
|
Daniel.F
GUJ Ranger
Membro desde: 29/03/2007 18:30:39
Mensagens: 909
Offline
|
Não pq ai eu teria que iniciar os doownloads dos boletos gerados em separado para o usuário.
|
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 11/02/2010 11:04:14
|
garcia-jj
JWizard
Membro desde: 13/04/2009 22:11:50
Mensagens: 2715
Localização: Porto Alegre
Offline
|
Se você precisa de um processamento tão grande o mais correto é iniciar um processo asyncrono que gere os boletos individualmente e depois você pude usar um tar ou zip para unir os arquivos, e depois disso disponibilizar o download.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 11/02/2010 12:32:08
|
Daniel.F
GUJ Ranger
Membro desde: 29/03/2007 18:30:39
Mensagens: 909
Offline
|
Mas ai teria que gravar os lotes em disco que tornaria a operação mais custosa.Ou existe uma forma de trabalhar com array de Bytes usando os lotes?
This message was edited 1 time. Last update was at 11/02/2010 12:32:50
|
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 11/02/2010 16:52:48
|
garcia-jj
JWizard
Membro desde: 13/04/2009 22:11:50
Mensagens: 2715
Localização: Porto Alegre
Offline
|
Daniel.F wrote:Mas ai teria que gravar os lotes em disco que tornaria a operação mais custosa.Ou existe uma forma de trabalhar com array de Bytes usando os lotes?
Mais custo do que carregar 3 mil PDF em memória? Acho que há duas coisas a fazer, sendo que a primeira delas é otimizar seu código para evitar muito lixo na heap, e a segunda pensar em fazer cache em disco dos arquivos. A menos que você trabalhe com clusters à lá GAE/J ou ECS a operação de gerar tantos PDFs assim não será nem um pouco curta. A melhor solução é realmente você fazer algo asincrono e depois entregar ao usuário tudo pronto.
This message was edited 1 time. Last update was at 11/02/2010 16:53:09
|
http://github.com/garcia-jj
Não respondo dúvidas via MP. Use o fórum. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/06/2010 08:54:02
|
esimioni
Entusiasta Java
Membro desde: 27/04/2007 17:17:51
Mensagens: 21
Offline
|
Você pode tentar também o Boleto Free. Cada boleto gerado tem 7.8KB, permite gerar multi-thread o que faria teu processo mais rápido, mas mesmo em mono-thread a performance é de mais de 300 boletos por segundo, o que geraria os 3000 boletos em no máximo 10 segundos, contando que a máquina não seja muito defasada.
Edit: Se você for gerar todos os boletos em um único PDF (funcionalidade disponível no Boleto Free), então o documento final para 3000 boletos ficará com 4.72MB (Cerca de 1.6KB por boleto), note que este tamanho pode ter pequenas variações conforme os dados de cada boleto. O tempo para a geração de 3000 boletos neste caso será de cerca de 5 segundos, não é possível utilizar usar multi-thread para melhorar este tempo por se tratar de um único arquivo.
Baixe a demo e faça um teste de performance, caso a performance seja abaixo do que eu indiquei, responda aqui neste tópico para analisarmos.
This message was edited 1 time. Last update was at 06/06/2010 17:28:00
|
|
|
 |
|
|