Max. Threadanzahl Eigenschaft von Quartz Scheduler

8

Ich habe folgende Situation:

8 Tasks, deren Ausführung mit org.quartz.threadPool.threadCount auf 5 festgelegt wurde.

Aber in Wirklichkeit kann ich sehen, dass alle 8 Aufgaben ausgeführt werden.

Wie könnte das möglich sein?

Wenn ich org.quartz.threadPool.threadCount=5 setze und 10 Aufgaben für Quarz übergebe, werden nur 5 Aufgaben parallel ausgeführt?

Was bedeutet org.quartz.threadPool.threadCount Eigenschaft?

Ich habe ein solches Design:

  1. Wir haben einige Aufgaben, die an Entitäten in db
  2. arbeiten
  3. Wir haben einen speziellen JobRunner, der eine Aufgabe ausführt
  4. Wir suchen nach auszuführenden Tasks und planen einen Task für die Ausführung in einem Quarz-Service, der mit SchedulerFactoryBean konfiguriert ist, wobei org.quartz.threadPool.threadCount auf 5 gesetzt ist.
  5. Wie ich weiß, wenn der Quarz-Dienst mit SchedulerFactoryBean 5 Aufgaben ausführen wird und wenn wir versuchen werden, zusätzliche Aufgaben zu planen, sollte Quarz selbst eine Ausnahme auslösen. Ist das wahr?

Danke.

    
user253202 24.01.2012, 12:27
quelle

1 Antwort

12

Es stimmt, dass QUARZs org.quartz.threadPool.threadCount nur die maximale Anzahl gleichzeitiger / paralleler Ausführungen ist.

Das bedeutet, wenn Sie X Jobs größer als threadCount planen, warten K = X - threadCount Jobs höchstens auf misFired strong> Millisekunden in einer Art Warteschlange für threadCount Jobs, um zu beenden.

Daher kann Gesamtzahl der geplanten Jobs (oder der Task) Anzahl der wartenden Aufgaben in der Warteschlange + Anzahl der ausgeführten Aufgaben sein. Mit Anzahl der ausgeführten Aufgaben weniger oder gleich threadCount .

    
user1199680 06.03.2012, 16:56
quelle

Tags und Links