2012-01-25 16 views
5

Come disattivare tutti gli scheduler (@Schedule annotati) in un progetto di deploy su Glassfish 3.1
Forse ci sono alcune voci di configurazione per fare ciò?
Ho circa 20 EJB con scheduler nel mio progetto e se voglio testare/correggere una piccola cosa non voglio che tutto/alcuni inizi il timer.Disattivazione di tutte le pianificazioni in Glassfish 3.1

+0

L'annotazione '@ Schedule' non è stata aggiunta nell'EJB 3.1 (http://docs.oracle.com/javaee/6/api/javax/ejb/Schedule.html#persistent%28%29)? Stai usando EJB 3.1 o 3.0? –

+0

Sto usando EJB 3.1 – alexblum

risposta

2

purtroppo non so se ci sono alcune voci di configurazione per risolvere il problema, ma c'è un modo per farlo programatical, chiamando il annullare() -Metodo su timer -Oggetti forniti da TimerService.

Ecco un esempio di una classe ho semplicemente messo in progetti quando voglio mettere alla prova solo piccole cose:

@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"); 
    } 
} 

Spero che questo aiuti! :)

+0

Il metodo getTimer() restituisce solo i timer attivi associati a questo bean. Forse è possibile ottenere tutti i timer nel progetto e disattivarli? – alexblum

2

L'accesso a TimerService#getTimers() restituirà solo i timer per questo particolare EJB. Non esiste un modo standard per accedere a tutti i timer nel contenitore (in realtà, ecco una richiesta di miglioramento: http://java.net/jira/browse/EJB_SPEC-47).

Immagino che avresti bisogno di usare una soluzione proprietaria di Glassfish e giocherellare con i loro interni (se è anche possibile). Lo chiederei su GlassFish mailing list se fossi in te.

+0

Grazie per la tua proposta. Chiederò alla mailing list. – alexblum

+0

Ecco la risposta dal gruppo mail Glassfish: http://www.java.net/forum/topic/glassfish/glassfish/disabling-all-schedules-glassfish-31 – alexblum

Problemi correlati