TimerService : quando saber que todos os timer terminaram de executar?

0 respostas
Tchello

Boa tarde pessoALL!

Seguinte, tenho um StatelessBean onde injeto por anotações um javax.ejb.TimerService.

Pois bem, em vários momentos dou createTimers nesse TimerService… que vai acumulando esses Timers, mas para executarem apenas 1 vez, o que não importa muito no contexto que descrevo.
Crio um método que recebe um javax.ejb.Timer e anoto com @TimeOut para que seja executado quando o timer der seu moment.
Porém a execução desse método pode demorar um pouco e tenho um processo que rola em paralelo que deve saber quando todos os timers terminaram o processamento. Porém não há nada que me auxilie nisso. Já tentei usar threads, mas o Threadpool não me deixa acessar esses métodos de wait e notifyAll, sempre dá IllegalStateException.

Como o número de timers pode ser variado, ou seja, nunca vou saber exatamente quantos estão executando não dá pra por um token (flag, whatever) no final do método com @TimeOut.
Ou seja, quero que, quando minha thread paralela estiver executando, essa fique paralizada até TODOS os timers daquele TimerService em específico terminem de executar aquele método anotado com @TimeOut.

Então, alguém teria alguma dica?
Já tentei N soluções, mas nunca funcionam =/

Abraços.

Criado 30 de setembro de 2010
Respostas 0
Participantes 1