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:
cv1
Março 18, 2004, 5:32pm
#2
Servlet com init-on-startup, metodo service(), Thread.sleep() num loop infinito. Podre, mas funciona
Outra ideia eh arrumar um scheduler, tipo o Quartz
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!!!
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
On some projects, you find you need to execute certain jobs and tasks at an exactly specified time or at regular time intervals. In this article we will see how Java developers can implement such a requirement using the standard Java Timer API, and then we will focus on Quartz, an open source library for those who need some extra features in their scheduling system.
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
One more thing is very important to say here: every Timer object starts a thread in the background. This behavior is not desirable in a managed environment, such as a J2EE application server, because these threads are not in the scope of the container.