Quartz调度程序最大线程计数属性

bre*_*ish 8 java quartz-scheduler

我有以下情况:

计划运行的8个任务org.quartz.threadPool.threadCount设置为5.

但实际上我可以看到所有8个任务都在运行.

这怎么可能?

如果我设置org.quartz.threadPool.threadCount=5并且我提交了10个石英任务,那么只有5个任务并行运行?

org.quartz.threadPool.threadCount财产是什么意思?

我有这样的设计:

  1. 我们有一些任务可以在db中对实体进行一些工作
  2. 我们有特殊的JobRunner执行一项任务
  3. 我们扫描要运行的任务,并安排在Quartler服务中运行的任务,该服务使用org.quartz.threadPool.threadCount设置为5的SchedulerFactoryBean进行配置.
  4. 据我了解,如果使用SchedulerFactoryBean的石英服务将运行5个任务,并且如果我们将尝试安排其他任务石英本身应该抛出异常.这是真的?

谢谢.

use*_*680 13

确实,QUARTZ的org.quartz.threadPool.threadCount只是并发/并行执行的最大数量.

这意味着,如果您安排X作业大于THREADCOUNTK = X - THREADCOUNT作业将最多等待一个失火的在某种毫秒队列THREADCOUNT作业完成.

因此,预定作业(或任务)的总数可以是队列中的等待任务的数量+正在运行的任务的数量.使用Number of running task小于或等于threadCount.