Como fazer um serviço "disparar" em um horário definido por mim ?  XML
Índice dos Fóruns » Desenvolvimento Web
Autor Mensagem
khichfy
Debugger

Membro desde: 01/02/2008 15:46:33
Mensagens: 62
Offline

Pessoal o que acontece é o seguinte:

Tenho uma tabela que é populada atraves de um sinal de negociação da bolsa de valores, ou seja, pra cada negocio realizado pelo investidor, a bovespa envia de tempos em tempos(alguns segundos) os dados desses negocios.
Acontece que essa tabela está GIGANTE e as views que foram montadas em cima dela estão com desempenho horrivel...

Bom, para resolver isso, mandaram eu criar um serviço que toda noite vai rodar.

O serviço tem como objetivo, jogar os dados atuais(vou ver pela data) numa tabela de NEGOCIOS_ATUAIS, e migrar aqueles negocios que deixaram de set atuais para a tabela HISTORICO_NEGOCIOS.

Sacaram? eu vou ficar dançando com os dados pra la e pra ca...
mas ainda sou estagiário e to desesperado com essa tarefa...

1- Minha primeira pergunta é como vou usar thread para disparar o tal serviço por exemplo 00:00 (meia noite) ?

se alguem puder me dar um rumo, fico demais agradecido
Abraços
Julio
marcelux
Debugger

Membro desde: 25/06/2007 12:29:10
Mensagens: 62
Offline

bem vejo isso de duas formas:

Se a aplicação for standalone vc usa o Quartz
Se a aplicação for J2EE 2.1 vc usa http://java.sun.com/j2ee/1.4/docs/api/javax/ejb/EJBContext.html#getTimerService()


scjp, scwcd, scbcd

Marcelo Sousa Lima
maiconramones
JavaGuru
[Avatar]

Membro desde: 04/12/2007 11:09:19
Mensagens: 210
Localização: Sapucaia do Sul
Offline

Tu pode dar uma olhada no quartz, com ele tu consegue agendar tarefas.

http://www.opensymphony.com/quartz/

Abraço,
[MSN]
Guitar_Men
JavaEvangelist
[Avatar]

Membro desde: 21/02/2008 10:01:31
Mensagens: 463
Offline

Ou vc pode criar uma tarefa no windows no braço mesmo, tal horario dispara um .bat com o comando pra chamar sua aplicação. É o jeito mais fácil e rápido !!!



[WWW] [MSN]
marcos.junqueira
JavaEvangelist
[Avatar]

Membro desde: 12/02/2005 15:43:29
Mensagens: 457
Localização: Uberlândia - MG
Offline

Creio que a melhor opção seja o quartz, você pode até clusterizar o bicho...

Marcos Oliveira Junqueira

"Não importa a forma como um guerreiro é derrubado, mas sim a maneira como ele se ergue."
[Email] [WWW] [MSN] [ICQ]
gzofera
Virtual Machine Man

Membro desde: 31/01/2008 17:05:05
Mensagens: 554
Offline

Ou vc pode criar uma tarefa no windows no braço mesmo, tal horario dispara um .bat com o comando pra chamar sua aplicação. É o jeito mais fácil e rápido !!!


eh isso ae... cria um bat e pronto

vlws
[WWW]
khichfy
Debugger

Membro desde: 01/02/2008 15:46:33
Mensagens: 62
Offline

nao posso criar bat nem nada que saia do padrão...

descobri que o spring tem um contexto chamado JOB com um bean como mostro abaixo:


esse bean acima parece que vai ser executado sempre meia noite por causa do value="0 0 0 * * ?"

então criei uma classe da seguinte maneira:


e criei no contexto SERVICES:
para setar o datasource na classe...



então minha ideia é adiantar o relogio do meu S.O para 11:59 e esperar pra ver se pelo menos vai chamar essa classe...
bizarro... acho que to viajando... mas se funcionar eu aviso

se funcionar, o problema passará a ser usar o jdbctemplate corretamente...

t+

This message was edited 2 times. Last update was at 01/09/2008 13:12:35

marcos.junqueira
JavaEvangelist
[Avatar]

Membro desde: 12/02/2005 15:43:29
Mensagens: 457
Localização: Uberlândia - MG
Offline

sim, o spring integra com o quartz, vc pode usar o jobstore para armazenar seus jobs no banco...

Marcos Oliveira Junqueira

"Não importa a forma como um guerreiro é derrubado, mas sim a maneira como ele se ergue."
[Email] [WWW] [MSN] [ICQ]
 
Índice dos Fóruns » Desenvolvimento Web
Ir para:   
Powered by JForum 2.1.8 © JForum Team