Olá pessoal!
Estou com o seguinte problema. Tenho uma Servlet q interpreta um XML e tira valores, passa-os a um bean q os escreve em BD.
Mas n verdade eu n preciso de uma app J2EE mas sim de uma classe q corra em background e seja executada de x em x minutos.
Como posso fazer isso?
Ideias?
É urgente por isso agradeço ajuda!
Obrigada,
Cláudia
Classe Java sempre a correr
13 Respostas
Aprenda usar o Quartz - http://www.opensymphony.com/quartz/
Ok.
Mas precisava de uma solução mais rápida, ie, sem estudar primeiro.
Existe?
Claudia
Usa uma thread então, mas não se usa thread numa aplicação web.
Sem estudar fica dificil fazer qualquer coisa!
É verdade… sem esforço n se vai a lado nenhum mas tenho de fazer isso pra ontem.
Embora ainda seja uma app web, vou converter numa unica class.
Pode ser n pode?
Do tipo:
//Lê XML
//Pega valores
//Criar conexao à BD
//Escreve BD
Claudia
Usa uma thread então, mas não se usa thread numa aplicação web.
Sem estudar fica dificil fazer qualquer coisa!
Pq??
[]'s
Pq??
Obs.: reformulando a pergunta para nao deixar duvidas… 
[]'s.
futurani como posso saber mais sobre threads?
Obrigada,
Cláudia
Cláudia,
vc está querendo fazer e está esperando aqui no GUJ que alguém te ensine uma mágica.
Sinto desapontá-la mas não vai conseguir sem estudar.
A melhor maneira é como furutani falou. Usando o Quartz. (O java nativo tb consegue fazer isso)
Não tem como vc fazer algo sem saber fazer.
Faça assim:
Crie a classe, implemente tudo como se fosse chamado por um botão (uma coisa de cada vez). Pelo que vi sua dúvida é apenas na forma de automatizar a rotina, certo ?
Bem, depois de tudo pronto, vai conseguir resolver seu problema em pouco tempo. Te garanto.
Um tutorial, ou um exemplo apenas do quartz vai te ajudar a squedular essa sua rotina. Não é complicado.
Abraço.
Bem, nunca vim ao GUJ com a esperança q alguém me resolvesse os meus problemas mas sim q me indicassem as possibilidades de os resolver.
Geral/ peço dicas e depois vou investigar…
E depois coloco sempre a solução, pois pretendo dar o meu contributo e possivel/ ajudar alguém com a mesma duvida.
Assim, aqui vai… Pra pôr uma classe java a correr de x em x tempo:
public class xyz extends Thread {
public static void main(String[] args) throws InterruptedException {
while(true)
{
// código
Thread.sleep (18000); // milliseconds
}// End while
}// End main
}// End class
Cláudia
Oi Claudia, Tudo bem ?
O amigo lá de cima sugeriu usar thread. Mas o seu problema, na minha opnião, não tem nada a ver com Thread. Na verdade o comentário dele mais atrapalhou do que ajudou.
Vc tem seu método pronto ?
Vc quer que ele rode automaticamente de tempo em tempos ?
Thread não fará isso por você. Como vc vai chamar a Therad ?
(O Quartz faz isso automaticamente pra você)
Mas está a funcionar correcta/!!
Claudia
Ok Claudia, mas me responde a pergunta.
Como sua thread está sendo chamada ?
Vc disse:
A primeira vez corro o programa invocando: java prog
Depois como existe um cile while sempre true a classe irá correr sempre.
Pra ser apenas de x em x tempo tenho Thread.sleep (18000); // milliseconds
Não sei se respondi à sua pergunta…
Cláuida