2012-01-25 16 views
5

¿Cómo puedo deshabilitar todos los programadores (@Schedule anotado) en un proyecto que se implementa en Glassfish 3.1
Quizás haya algunas entradas de configuración para hacer esto?
Tengo alrededor de 20 EJB con planificadores en mi proyecto y si quiero probar/arreglar algo pequeño no quiero que todo/algún temporizador comience.Deshabilitar todas las planificaciones en Glassfish 3.1

+0

¿No se agregó la anotación '@ Schedule' en el EJB 3.1 (http://docs.oracle.com/javaee/6/api/javax/ejb/Schedule.html#persistent%28%29)? ¿Estás usando EJB 3.1 o 3.0? –

+0

Estoy usando EJB 3.1 – alexblum

Respuesta

2

por desgracia no sé si hay algunas entradas de configuración para resolver su problema, pero hay una manera de hacerlo programatical, llamando a la Cancelar() -method en temporizador -Objetos proporcionados por TimerService.

He aquí un ejemplo de una clase que simplemente envasados ​​en proyectos cuando quiero probar las cosas sólo pequeñas:

@Stateless 
public class ScheduleCancellation { 

    @Resource 
    private TimerService timerService; 

    @Schedule(second = "0", minute = "*", hour = "*") 
    public void cancelTimers() { 
    System.out.println("cancelTimers()"); 
    for (Timer timer : timerService.getTimers()) { 
     System.out.println("schedule gone!"); 
     timer.cancel(); 
    } 
    } 

    @Schedule(second = "*", minute = "*", hour = "*") 
    public void tick() { 
    System.out.println("tick"); 
    } 
} 

Espero que esto ayude! :)

+0

El método getTimer() devuelve solo los temporizadores activos asociados con este bean. ¿Tal vez es posible obtener todos los temporizadores en el proyecto y desactivarlos? – alexblum

2

El acceso a TimerService#getTimers() solo devolverá los temporizadores para este EJB en particular. No existe una forma estandarizada de acceder a todos los temporizadores en el contenedor (en realidad, aquí hay una solicitud de mejora: http://java.net/jira/browse/EJB_SPEC-47).

Supongo que necesitaría utilizar alguna solución patentada de Glassfish y jugar con sus partes internas (si es posible). Preguntaría en el GlassFish mailing list si fuera usted.

+0

Gracias por su propuesta. Preguntaré a la lista de correo. – alexblum

+0

Aquí está la respuesta del grupo de correo de Glassfish: http://www.java.net/forum/topic/glassfish/glassfish/disabling-all-schedules-glassfish-31 – alexblum

Cuestiones relacionadas