Кварцевый планировщик свойство максимального числа потоков - PullRequest
8 голосов
/ 24 января 2012

У меня следующая ситуация:

8 запланированных для запуска задач с org.quartz.threadPool.threadCount, установленным на 5.

Но в действительности я вижу, что все 8 задач выполняются.

Как это могло быть возможно?

Если я установил org.quartz.threadPool.threadCount=5 и отправил 10 задач для кварца, правда, что только 5 задач будут выполняться параллельно?

Что означает свойство org.quartz.threadPool.threadCount?

У меня есть такой дизайн:

  1. У нас есть некоторые задачи, которые выполняют некоторую работу над сущностями в db
  2. У нас есть специальный JobRunner, который выполняет одну задачу
  3. Мы просматриваем задачи для запуска и планируем задачу для запуска в кварцевой службе, которая настроена с SchedulerFactoryBean с org.quartz.threadPool.threadCount, установленным на 5.
  4. Как я понимаю, если у службы кварца с SchedulerFactoryBean будет 5 запущенных задач, и если мы попытаемся запланировать дополнительную задачу, сам кварц должен выдать исключение.Это правда?

Спасибо.

1 Ответ

13 голосов
/ 06 марта 2012

Это правда, что org.quartz.threadPool.threadCount в QUARTZ - это только максимальное число параллельных / параллельных выполнений.

Это означает, что если вы запланируете X заданий, превышающих threadCount , то K = X - threadCount заданий будет ожидать самое большее misFired миллисекунд в какая-то очередь для threadCount заданий до конца.

Таким образом, Общее количество запланированных заданий (или задача) может составлять Количество ожидающих заданий в очереди + Количество запущенных заданий . При Количество запущенных задач меньше или равно threadCount .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...