什么是未指定任何时使用的默认“org.quartz.threadPool.threadCount”?

时间:2013-02-20 12:30:26

标签: java spring scheduled-tasks quartz-scheduler

我在Spring应用程序中有一些计划任务,它们的配置如下:

<bean id="scheduler" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
    <property name="triggers">
        <list>
            <!-- Here the list of tasks -->             
        </list>
    </property>     
</bean>

我遇到了一些问题(某些任务在他们应该但不总是在很长一段时间后或在特定时间都不会运行)而且我认为这可能是因为有很多任务(目前为止11个)和系统无法同时运行它们。我曾想过像这样设置org.quartz.threadPool.threadCount来增加并行线程的数量:

<bean id="scheduler" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
    <property name="triggers">
        <list>
            <!-- Here the list of tasks -->             
        </list>
    </property>
    <property name="quartzProperties">
        <props>
            <prop key="org.quartz.threadPool.threadCount">15</prop>
        </props>
    </property>     
</bean>

但是我想知道,当我没有设置org.quartz.threadPool.threadCount属性时,系统使用了多少个线程?什么是默认行为?

1 个答案:

答案 0 :(得分:6)

在谷歌搜索“SchedulerFactoryBean.java”时,第一个链接(SchedulerFactoryBean.java)与我打开的源代码有:

public static final int DEFAULT_THREAD_COUNT = 10;

稍后将使用此值在 initSchedulerFactory 方法中设置 org.quartz.threadPool.threadCount

mergedProps.setProperty(PROP_THREAD_COUNT, Integer.toString(DEFAULT_THREAD_COUNT));