Pregunta

Necesito que se invoque un método en un servidor de aplicaciones (Glassfish) cada 5 segundos, pase lo que pase. ¿Son los temporizadores lo suficientemente confiables para esto? ¿Cuáles son mis opciones?

¿Fue útil?

Solución

A menos que esté en un sistema en tiempo real, no hay "temporizador" te va a dar esa precisión. Los temporizadores en general proporcionan un "ocurrirá al menos en el tiempo que desee ... pero tal vez más tarde". tipo de cosas.

Esto es una cosa subyacente del sistema operativo, no una cosa de Java.

Editar:

Dicho esto ... ¿realmente quieres decir "5 segundos exactamente"? ¿O funcionarán unos milisegundos más tarde? Si unos pocos milisegundos más tarde funciona, entonces un temporizador está bien. Es posible que a veces esos "pocos milisegundos" sin embargo, podrían ser varios cientos, dependiendo de lo que esté sucediendo en el sistema (sistema operativo, así como cosas como la recolección de basura en la VM).

Otros consejos

Sí, mira el uso de la API de cuarzo, es la única API de programación de clase empresarial gratuita para Java que conozco. http://www.quartz-scheduler.org/

Actualmente lo estoy usando en una gran aplicación financiera agrupada. Los documentos son una pesadilla pero generalmente son muy confiables. Es confiable lo que vas a obtener.

karl

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top