Serviço EJB monitorando alterações no Banco

4 respostas
ronaldocwb

Ola,

Preciso criar um serviço EJB (ou algo que rode em um servidor JEE) que a cada 1s pesquise em uma tabela do banco por novos eventos para processar.

Minha idéia inicial seria usar o TimerService (EJB) ou até mesmo o Quartz, mas por ser um intervalo muito curto de execução meu receio seria estar utilizando muito recurso para algo simples.
Outra opção seria criar um servlet que inicia junto com a aplicação e ficaria em loop com intervalo de 1s em cada iteração do while.

Alguem tem alguma sugestão de uma boa abordagem para esse caso? Qualquer opinião é bem vinda.

4 Respostas

yorgan

Para esse caso não é melhor utilizar trigger diretamente no banco não?
Acho que rodar um serviço de 1 em 1s vai consumir mto recurso.

[]´s

Daniel

ronaldocwb

Daniel,

Eu não posso deixar a aplicação dependente do banco, no momento que as solicitações são salvas meu serviço pode estar parado e quando for iniciado vai ler e processar.
Hoje ja tenho esse mecanismo implementado, mas como um serviço do windows (via JavaServices) e esse faz essa checagem no banco. A idéia é passar essa mesma abordagem para rodar em um servidor JEE para que eu possa usufruir de outros benefícios que preciso.

Obrigado pela resposta de qualquer forma.

mcbarsotti

Não vejo nenhum problema em usar o QUARTZ para isso.
Ele vai iniciar suas Threads ( os Workers como ele chama ) quando a aplicação subir, essa parte é um pouco custosa ( mas configuravel também ) depois disso, só vai executar um JOB a cada 1 seg, como disse, não vejo problema de performance nesse ponto, oque pode acontecer é a performance ir para o espaço por causa de tantos acessos seguidos na base.
Não esquece de configurar um cache de conexões hein.

Abraços!
Boa sorte!

yorgan

Só uma coisa, que tipo de serviço você precisa executar que tem um intervalo tão pequeno?
Dependendo do caso talvez a solução seja até tentar uma outra abordagem.

[]´s
Daniel

Criado 15 de dezembro de 2009
Ultima resposta 15 de dez. de 2009
Respostas 4
Participantes 3