2008-12-30 15 views
6

P. ej. si configuro un temporizador para que caduque todos los días a medianoche, ¿qué sucederá si un "fallo de encendido" (no desencadena la devolución de llamada porque el servidor está inactivo, por ejemplo)? No puedo encontrar eso en la documentación.¿Se supone que los temporizadores EJB son persistentes/confiables?

¿Hay alguna manera de hacer que este temporizador active la devolución de llamada en cuanto se reinicie el servidor?

PD: Sé de Quartz, estoy evaluando EJB timers como alternativa.

Respuesta

4

Puede usar un TimerHandle para hacer que un temporizador sea persistente. Los tiempos EJB fueron diseñados para sobrevivir a los accidentes de contenedores.

Consulte esto article para una comparación entre tiempos EJB y otros sistemas de programación como Quartz.

3

Por experiencia, puedo decirles que en Glassfish un temporizador faltante se activará tan pronto como el servidor vuelva a funcionar. Si su servidor está inactivo por dos o más tiempos de espera perdidos, solo se disparará una vez, no una vez por cada tiempo perdido. Luego regresa a su programa programado regularmente.

Cuestiones relacionadas