我有以下情况:

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

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

这怎么可能呢?

如果我设置org.quartz.threadPool.threadCount=5并提交了10个针对石英的任务,那么确实只有5个任务可以并行运行吗?
org.quartz.threadPool.threadCount属性的含义是什么?

我有这样的设计:

  • 我们有一些任务可以对db
  • 中的实体做一些工作
  • 我们有特殊的JobRunner执行一个任务
  • 我们扫描要运行的任务,并计划在使用SchedulerFactoryBean且org.quartz.threadPool.threadCount设置为5的石英服务中运行的任务。
  • 据我了解,带有SchedulerFactoryBean的石英服务是否将运行5个任务,并且如果我们尝试调度其他任务,石英本身应抛出异常。这是真的?

  • 谢谢。

    最佳答案

    的确,QUARTZ的 org.quartz.threadPool.threadCount 只是并发/并行执行的最大数量。
    这意味着,如果您计划大于 threadCount X 作业,则 K = X-threadCount 作业最多会在某种队列作业作业中完成的任务,以等待作业完成。
    因此计划作业的总数(或任务)可以是队列中等待任务的数量+正在运行的任务的数量。带有的正在运行的任务的数目小于或等于 threadCount

    08-04 03:17