2012-01-24 13 views
8

Ho la seguente situazione:quarzo scheduler max proprietà numero di thread

8 attività pianificate per l'esecuzione con org.quartz.threadPool.threadCount insieme a 5.

Ma in realtà mi rendo conto che tutti gli 8 attività sono in esecuzione.

Come potrebbe essere possibile?

Se ho impostato org.quartz.threadPool.threadCount=5 e ho inviato 10 attività per il quarzo, è vero che solo 5 attività verranno eseguite in parallelo?

Qual è il significato di org.quartz.threadPool.threadCount proprietà?

devo tale disegno:

  1. Abbiamo alcuni compiti che fare un certo lavoro sulle entità in db
  2. Abbiamo speciale JobRunner che esegue un compito
  3. Abbiamo la scansione per i compiti da eseguire e pianificare attività per l'esecuzione nel servizio al quarzo che è configurato con SchedulerFactoryBean con org.quartz.threadPool.threadCount impostato su 5.
  4. Come ho capito se il servizio al quarzo con SchedulerFactoryBean avrà 5 attività in esecuzione e se proveremo a pianificare il task quartz aggiuntivo dovrebbe lanciare un n Eccezione. È vero?

Grazie.

+2

Quando dici che tutti e 8 i lavori sono in esecuzione, intendi lo 'scheduler. getCurrentlyExecutingJobs() 'restituisce una lista di otto lavori? O che tutti stanno inviando l'output a System.out? O cosa? –

+0

Ho modificato la descrizione della storia. Quindi se pianifico 8 task per Scheduler e set threadCount = 2, vuol dire che 2 thread eseguiranno 8 attività di immersione e contesti di changin? – user253202

risposta

12

È vero che il numero di QUARTZ org.quartz.threadPool.threadCount è solo il numero massimo di esecuzioni simultanee/parallele.

Ciò significa che se si pianifica X posti di lavoro superiori a threadcount poi K = X - threadcount posti di lavoro attendere al massimo un cilecca millisecondi in una sorta di coda per threadcount posti di lavoro per finire .
Il numero totale di lavori pianificati (o attività) può essere Numero di attività in attesa in coda + Numero di attività in esecuzione. Con Numero di attività in esecuzione pari o inferiore a threadCount.

+0

è possibile che 2 lavori utilizzino lo stesso thread? –