2010-08-24 13 views
6

estoy tratando de encontrar la mejor manera de implementar un tiempo de espera con cuarzo, pero quiero saber si este marco ya contiene una clase o interfaz para hacerlo. El tiempo de espera que necesito implementar es porque quiero saber cuánto tiempo ha trabajado el trabajo, y tomar la decisión de desactivar el trabajo.¿Cómo implementar el tiempo de espera con Quartz?

+0

Pruebe el parámetro endTime aún? http://www.quartz-scheduler.org/docs/tutorial/TutorialLesson05.html – Sean

+0

hola, y gracias por preguntar, realmente no lo uso porque creo que ese parámetro es solo para terminar un trabajo después de cierto tiempo. Y quiero saber cuánto tiempo el trabajo tiene que hacer la operación para evitar un ciclo infinito. – Jorge

+0

Ok, entonces está buscando una manera de rastrear el tiempo de actividad del planificador más que un tiempo de espera. Intente mirar la documentación para los oyentes. No los he usado, pero parecerían ser la opción lógica para controlar el estado/tiempo de ejecución de su aplicación. – Sean

Respuesta

8

Como la plataforma java no proporciona ninguna forma de detener un hilo, Quartz no proporciona ninguna forma de detener una ejecución de trabajo en un hilo.

Los trabajos deben cuidarse, ya que Quartz puede no tener idea de qué código está en su método execute().

Sugeriría usar System.currentTimeMillis() al comienzo de su método de ejecución de trabajo() para registrar la hora actual, y luego cada vez a través del ciclo principal de su trabajo usarlo nuevamente para obtener la hora actual. Mire la diferencia para ver si su tiempo máximo ha pasado, y si es así, salga de su ciclo principal y salga del método execute().

+1

Consulte también la interfaz InterruptableJob. Y la interfaz JobListener, que le brinda herramientas para agregar algunas funciones simples al marco que satisfagan sus necesidades. – jhouse

Cuestiones relacionadas