2012-05-18 5 views
5

E 'possibile in Quartz-Scheduler, definire i vincoli di esecuzione sul lavoro?Constraint due lavori da non eseguire contemporaneamente in Quartz-Scheduler

Infatti, ho due classi che implementa l'interfaccia Job: JobA e JobB.

JobA verrà pianificato ogni minuto. Il lavoro sarà pianificato ogni ora.

Non desidero che JobA e JobB funzionino contemporaneamente.

Nota: JobA e JobB non eseguono le stesse operazioni.

Grazie per le vostre risposte.

risposta

4

Non esiste un supporto diretto per questo. Se si trattasse dello stesso lavoro, è possibile definirlo come stato - tali lavori non possono essere eseguiti simultaneamente come definizione.

Altrimenti è possibile limitare il numero di thread di lavoro al quarzo a 1, inoltre è possibile definire le priorità del thread per scegliere quale lavoro deve essere eseguito per primo. Sfortunatamente questa soluzione non si ridurrà a quando saranno coinvolti più lavori.

Infine è possibile implementarlo manualmente senza coinvolgere il quarzo. Immagino che tu non voglia che alcune operazioni o risorse siano accessibili allo stesso tempo. Prendi in considerazione la possibilità di bloccare quel metodo/risorsa in modo che entrambi i lavori vengano eseguiti contemporaneamente, ma un blocco e attende che l'altro termini.

+0

OK. Grazie per la tua risposta – Sly33