Rotina q deve ser rodada constantemente em WEB

Olá pessoal,

Tenho a seguinte duvida… Tenho um sistema web e com BD… de tempos em tempos, preciso rodar uma rotina que pegue os dados de umas tabelas e jogue em outras, mas isso tem q funcionar meio automatico, sem ninguem fazer nada…

Gostaria de saber se dá pra fazer isso totalmente via web, sem, por exemplo, ativar o agendador de tarefas do SO ou criar um executavel que chame/inicie o processo…

Ps: em alguns BD, dá pra fazer JOBs, mas nao é o meu caso…

Alguem pode dar uma luz???

Obrigado!!! :roll:

Servlet com init-on-startup, metodo service(), Thread.sleep() num loop infinito. Podre, mas funciona :smiley:

Outra ideia eh arrumar um scheduler, tipo o Quartz :wink:

Se não quiser partir para o Quartz, uma solução mais simples é com java.util.Timer e java.util.TimerTask.

Mas cuidado, pois gera uma Thread separada da WebApplication.

Isso quer dizer que quando você dá um redeploy na sua WebApplication, é criada uma NOVA thread de Timer, mas a antiga continua rodando.

Para resolver isso, precisei implementar o destroy() na Servlet, matando esse Timer.

Um, ok, vou pesquisar por Quartz e também vou ver essas outras alternativas q vcs deram… depois dos testes posto aqui os resultados…

Valeu pela atencao!!!

Ps: Esse forum é femomenal… posta uma mensagem e minutos depois já tem respostas… continuem assim!!! :wink:

Obrigado!

Recomendo a leitura do artigo abaixo:

Job Scheduling in Java
http://www.onjava.com/pub/a/onjava/2004/03/10/quartz.html?page=1

E tem também a thread de discussão lá no TheServerSide:

http://www.theserverside.com/news/thread.tss?thread_id=24446
Job Scheduling with Quartz and Timer

Boa sorte,

http://www.onjava.com/lpt/a/4637