vou ter uma aplicação sem servidor de aplicação J2EE e sim WEB (TOMCAT)
e preciso deixar uma classe a todo momento verificando se uma informação
no banco de dados foi alterada por exemplo uma tabela processo vai inserir
um registro 0 se sim rodar um processo que já tenho …
Minha duvida tem no java algum modo qdo minha aplicação estiver rodando todo
segundo ir verificar no banco de dados se tem registro novo (metodo pra ir no banco já tenho)…
este registro que vai ser inserido no seu banco de dados vai ser inserido através de uma outra aplicação que nao tem nenhuma comunicação com a sua? pois caso vc tenha controle desta inserção ao invés de ficar verificando no banco de dados a cada um segundo vc poderia inverter a logica do seu sistema para q ele fique esperando “ser avisado” de que foi inserido um novo registro, aí neste momento seu sistema iniciaria a lógica específica.
agora caso vc nao tenha controle desta inserção e realmente tenha que ficar indo no banco de dados a todo momento, existe um framework bastante interessante chamado Quartz onde vc consegue agendar que determinada lógica seja executada. Para o seu caso, vc agendaria a lógica de ficar varrendo o banco de dados a cada 1 seg.
Abrir a conexão com o banco;
Enquanto (não pedirem para encerrar esta thread, através de um flag) {
Esperar 1 segundo; // Use try { Thread.sleep (1000); } catch (InterruptedException ex) {}
Verificar a informação no banco que você quer obter;
Processar a tal informação, se houver informação nova;
}
Fechar a conexão com o banco
Existe a solução de criar uma thread, entretanto uma aplicação web ficar fazendo esse tipo de trabalho é um tanto estranho, me parece que deveria ser um processo em separado, que ate poderia rodar sob uma crontab.