| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 19/10/2011 14:39:07
|
leoloko
JavaChild
Membro desde: 15/05/2005 12:05:19
Mensagens: 149
Offline
|
Caros, boa tarde.
Em minha aplicação necessito de alguns jobs com scopo de aplicação. E como se sabe não conseguimos injetar os componentes de request nesses jobs de application. Enfim, preciso de vários Daos e outros componentes nesses jobs.
O que devo fazer para utilizar estes componentes em meus jobs? Devo duplicar esses componentes para application scoped? Ou seja duplicar vários daos, sessionfactorys e etc, para poder trabalhar com eles dentro do job? Ou existe outra maneira de fazer isso de forma "correta"?
[]'s
Leonardo
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 19/10/2011 15:22:38
|
Lucas Cavalcanti
GUJ Hacker
![[Avatar]](/images/avatar/5f6780632f5d27dd0cded5fc9361169e.jpg)
Membro desde: 08/07/2007 00:08:14
Mensagens: 6396
Offline
|
o problema é que os jobs executam fora de requisições, então vc não pode usar nenhum componente de request ou session...
um dos jeitos de resolver o problema é criar controllers que executam as lógicas e os jobs chamarem urls desses controllers... daí vc faz de um jeito que esses controllers só possam ser chamados desses jobs.
|
--
Caelum
www.caelum.com.br
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 19/10/2011 15:55:16
|
leoloko
JavaChild
Membro desde: 15/05/2005 12:05:19
Mensagens: 149
Offline
|
Lucas Cavalcanti wrote:o problema é que os jobs executam fora de requisições, então vc não pode usar nenhum componente de request ou session...
um dos jeitos de resolver o problema é criar controllers que executam as lógicas e os jobs chamarem urls desses controllers... daí vc faz de um jeito que esses controllers só possam ser chamados desses jobs.
Entendi lucas, obrigado pela dica. Uma dúvida: É possível resgatar, apartir desse job, informações de dominio, contexto e etc? Para não ficar hardcode a chamada da URL, de forma a ficar mais dinâmico. Tentei injetar o HttpServletRequest e também não foi possível.
Mas a dica já resolveu o problema... valew!
This message was edited 1 time. Last update was at 19/10/2011 15:55:52
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 19/10/2011 16:11:50
|
Lucas Cavalcanti
GUJ Hacker
![[Avatar]](/images/avatar/5f6780632f5d27dd0cded5fc9361169e.jpg)
Membro desde: 08/07/2007 00:08:14
Mensagens: 6396
Offline
|
injete o ServletContext, assim vc consegue qual é o context-path...
e como vc tá no servidor vc pode chamar por localhost:8080
|
--
Caelum
www.caelum.com.br
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 19/10/2011 16:23:58
|
leoloko
JavaChild
Membro desde: 15/05/2005 12:05:19
Mensagens: 149
Offline
|
Lucas Cavalcanti wrote:injete o ServletContext, assim vc consegue qual é o context-path...
e como vc tá no servidor vc pode chamar por localhost:8080 
Opa funcionou perfeitamente! Thanks!
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 23/10/2011 19:31:29
|
wpivotto
Thread.start()
Membro desde: 04/01/2010 14:44:33
Mensagens: 34
Offline
|
leoloko esse projeto pode ajudar
https://github.com/wpivotto/vraptor-tasks
Criando algumas classes daria para fazer algo desse tipo:
This message was edited 1 time. Last update was at 23/10/2011 21:33:08
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 24/10/2011 07:10:28
|
leoloko
JavaChild
Membro desde: 15/05/2005 12:05:19
Mensagens: 149
Offline
|
Parece legal este método, utilizando essa forma, como restringiria no controller a chamada somente apartir dessa task?
This message was edited 1 time. Last update was at 24/10/2011 07:14:11
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 25/10/2011 10:19:44
|
wpivotto
Thread.start()
Membro desde: 04/01/2010 14:44:33
Mensagens: 34
Offline
|
leoloko wrote:
Parece legal este método, utilizando essa forma, como restringiria no controller a chamada somente apartir dessa task?
Então, uma maneira de fazer isso é assim: https://gist.github.com/1312993
Utilizando um interceptor que bloqueia qualquer requisição fora do servidor (127.0.0.1)
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 26/10/2011 16:06:11
|
leoloko
JavaChild
Membro desde: 15/05/2005 12:05:19
Mensagens: 149
Offline
|
wpivotto wrote:
Então, uma maneira de fazer isso é assim: https://gist.github.com/1312993
Utilizando um interceptor que bloqueia qualquer requisição fora do servidor (127.0.0.1)
Show de bola, essa eu já implementei, mas o esquema do vraptor com o quartz ainda não, mas em breve farei.
Agora uma outra questão, implementei dois jobs aqui, ambos rodam de 1 em 1 minuto, porém um dos jobs demora 5 minutos pra executar, enquanto o mais demorado está executando o outro não roda ele fica esperando o de 5 terminar. Alguém saberia me dizer porque isso está ocorrendo? Pois pra mim esses jobs eram multi-thread, não deveriam possuir nenhum tipo de dependência, ou seja, se um dos jobs demorar 30 minutos pra rodar, o outro deveria continuar rodando de 1 em 1 minuto em paralelo, pelo menos esse é o meu conceito... hehehe
[]'s
Leonardo
This message was edited 1 time. Last update was at 26/10/2011 16:14:58
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 07/11/2011 23:27:22
|
miltonjr27
Thread.start()
Membro desde: 10/10/2011 16:26:08
Mensagens: 28
Offline
|
Estou precisando criar uma classe para rodar em background num sistema que estou implementando. Quais classes devo criar para poder utilizar esse Task e por que o VRaptor não reconhece a interface Task aqui? É preciso configurar o Spring para utilizar essa anotação @Scheduled?
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 07/11/2011 23:29:18
|
Lucas Cavalcanti
GUJ Hacker
![[Avatar]](/images/avatar/5f6780632f5d27dd0cded5fc9361169e.jpg)
Membro desde: 08/07/2007 00:08:14
Mensagens: 6396
Offline
|
isso é um plugin do VRaptor:
https://github.com/wpivotto/vraptor-tasks
|
--
Caelum
www.caelum.com.br
 |
|
|
 |
|
|