Interceptar o final do response

15 views
Skip to first unread message

Edi Linux

unread,
Apr 14, 2018, 10:43:22 AM4/14/18
to caelum-vraptor
Olá pessoal,

Não sei se estou me expressando corretamente, mas gostaria de interceptar ou criar um listener para 
executar um callback após o termino do Download.

Rodrigo Turini

unread,
Apr 15, 2018, 8:39:56 AM4/15/18
to caelum-...@googlegroups.com
oi Edi

precisaria acontecer exatamente após o termino do download? 
ou em qualquer momento após, antes do final do request?

existem várias estratégias, mas depende do que você quer fazer e em qual momento exato. 
algumas informações que podem ajudar:

talvez no pipeline de observers exista algum que você possa observar para fazer o callback:
(há o methodExecuted, para fazer algo sempre depois que o método do controller é executado, e o downloadObserver para quando é um download)

se nenhum desses resolver, e um simples interceptor não for o bastante, você tambem pode criar uma classe que herda do componente de downloads do vraptor (specializes), chama o super pra fazer todo código que já faz hoje e logo em seguida adiciona o código novo que você quer fazer no final do processo.

como eu disse, tem várias formas diferentes de fazer de acordo com o que e quando você precisa que aconteça. 
veja se alguma dessas ajuda, se não nos conte um pouco mais sobre o problema que podemos sugerir algo mais específico (;

abracos

--
Você recebeu essa mensagem porque está inscrito no grupo "caelum-vraptor" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para caelum-vrapto...@googlegroups.com.
Para postar nesse grupo, envie um e-mail para caelum-...@googlegroups.com.
Acesse esse grupo em https://groups.google.com/group/caelum-vraptor.
Para mais opções, acesse https://groups.google.com/d/optout.

Edi Linux

unread,
Apr 15, 2018, 10:12:05 PM4/15/18
to caelum-vraptor
Quero fazer algo simples,
Antes de retornar um download eu crio uma arquivo temporário no servidor, então eu gostaria de apagar esse arquivo.
Mas isso deveria acontecer após o cliente conseguir terminar de baixar o arquivo... (após o download estar completo)
Eu consigo fazer isso com as suas soluções propostas?

Carlos Spohr

unread,
Apr 16, 2018, 6:45:51 AM4/16/18
to caelum-...@googlegroups.com
Olá, bom dia.

Acredito que se você utilizar a implementação ByteArrayDownload, você pode pegar os bytes deste seu File e removê-lo (File.delete()) depois da instância dessa classe. Algo como:

@Get(...)
public Download doDownload(){
File file = ...;

ByteArrayDownload dl = new ByteArrayDownload(file.getBytes, ...);

file.delete();

return dl;

}

Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para caelum-vraptor+unsubscribe@googlegroups.com.
Para postar nesse grupo, envie um e-mail para caelum-vraptor@googlegroups.com.



--
Atenciosamente,
Carlos Alberto Junior Spohr Poletto

Rafael Ponte

unread,
Apr 16, 2018, 7:40:14 AM4/16/18
to caelum-...@googlegroups.com
Opa,

Outra solução é deixar os arquivos temporários quietinhos lá e depois apaga-los via um Job simples que roda de tempos em tempos.

Acha que resolve também?

Um abraço,
--
Atenciosamente,
Carlos Alberto Junior Spohr Poletto

--
Você recebeu essa mensagem porque está inscrito no grupo "caelum-vraptor" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para caelum-vrapto...@googlegroups.com.
Para postar nesse grupo, envie um e-mail para caelum-...@googlegroups.com.
Acesse esse grupo em https://groups.google.com/group/caelum-vraptor.
Para mais opções, acesse https://groups.google.com/d/optout.
--
Rafael Ponte
TriadWorks | Formação Java
http://cursos.triadworks.com.br

Edi Linux

unread,
Apr 16, 2018, 8:32:02 AM4/16/18
to caelum-vraptor
Mas neste caso o arquivo fica em memória ram ou no disco?
Eu falo isso pq vai ter situação que o download vai ter mais de 3GB de tamanho...

Edi Linux

unread,
Apr 16, 2018, 9:04:03 AM4/16/18
to caelum-vraptor
Eu tinha pensado nisso, mas qual seria uma boa estratégia para disparar o job?
Reply all
Reply to author
Forward
0 new messages