什么是石英默认线程数

Jef*_*Jef 5 java quartz-scheduler

我是新来的Quartz.我确实设法找出Scheduler配置的默认值org.quartz.threadPool.threadCount=-1.

但它并没有发现这意味着什么.这是否意味着只有一个线程或其他一些'数字'?

我正在玩quartz-scheduler v2.2.

Mac*_*ski 11

这取决于..

如果您使用,Spring Framework那么您可以看到在SchedulerFactoryBean中定义了真正的默认值:

public static final int DEFAULT_THREAD_COUNT = 10;
Run Code Online (Sandbox Code Playgroud)

如果使用裸Quartz并且没有传递任何属性,它将使用其默认配置,您可以在org.quartz.properties:quartzjar中找到它.它叫quartz.properties (这里是链接)并包含:

# Default Properties file for use by StdSchedulerFactory
# to create a Quartz Scheduler Instance, if a different
# properties file is not explicitly specified.
#

org.quartz.scheduler.instanceName: DefaultQuartzScheduler
org.quartz.scheduler.rmi.export: false
org.quartz.scheduler.rmi.proxy: false
org.quartz.scheduler.wrapJobExecutionInUserTransaction: false

org.quartz.threadPool.class: org.quartz.simpl.SimpleThreadPool
org.quartz.threadPool.threadCount: 10
org.quartz.threadPool.threadPriority: 5
org.quartz.threadPool.threadsInheritContextClassLoaderOfInitializingThread: true

org.quartz.jobStore.misfireThreshold: 60000

org.quartz.jobStore.class: org.quartz.simpl.RAMJobStore
Run Code Online (Sandbox Code Playgroud)

所以,大多数情况下都是10.

另一方面,如果你只是想创建SimpleThreadPool没有specyfying线程池大小,它将从initialize方法抛出异常(这里的链接):

if (count <= 0) {
    throw new SchedulerConfigException(
            "Thread count must be > 0");
}
Run Code Online (Sandbox Code Playgroud)


Eug*_*rin 5

Quartz尝试从默认值开始org.quartz.threadPool.threadCount=-1

它没有开始。你得到了org.quartz.SchedulerConfigException: Thread count must be > 0

默认值强制您将值-1配置为大于 0 。org.quartz.threadPool.threadCount

来自jdoc

org.quartz.threadPool.threadCount

可以是任意正整数...