如何确保使用quartz.properties?

mos*_*a.S 5 java quartz-scheduler threadpool

我在quartz.properties文件中设置了以下属性:

org.quartz.threadPool.threadCount = 60
org.quartz.scheduler.batchTriggerAcquisitionMaxCount = 60
Run Code Online (Sandbox Code Playgroud)

然而,由于某种原因,显然它没有生效.因为当我启动我的应用程序时,日志显示它仍然在池中使用1个线程:

[main] INFO org.quartz.impl.StdSchedulerFactory - Using default implementation for ThreadExecutor 
[main] INFO org.quartz.core.SchedulerSignalerImpl - Initialized Scheduler Signaller of type: class org.quartz.core.SchedulerSignalerImpl 
[main] INFO org.quartz.core.QuartzScheduler - Quartz Scheduler v.2.1.1 created. 
[main] INFO org.quartz.simpl.RAMJobStore - RAMJobStore initialized.
[main] INFO org.quartz.core.QuartzScheduler - Scheduler meta-data: Quartz Scheduler (v2.1.1) 'QuartzScheduler' with instanceId 'NON_CLUSTERED' Scheduler class: 'org.quartz.core.QuartzScheduler' - running locally. NOT STARTED. Currently in standby mode. Number of jobs executed: 0   
Using **thread pool 'org.quartz.simpl.SimpleThreadPool' - with 1 threads.**
Run Code Online (Sandbox Code Playgroud)

我知道,quartz.properties需要在类路径中找到.而我刚刚做到了 为什么没有检测到这个文件的任何其他原因?或检测到但线程数未正确设置?

谢谢

dom*_*nik 8

对于那些使用Spring + Quartz并且quartz.properties文件不起作用的人(即在启动应用程序时被忽略):

org.quartz.Scheduler由Spring Factory Bean ()实例化的Quartz Scheduler()默认情况下org.springframework.scheduling.quartz.SchedulerFactoryBean不会quartz.properties从类路径中读取文件,就像在Quartz文档中所说的那样 - 您需要手动设置引用:

[在Java配置的情况下]:

@Bean
public SchedulerFactoryBean schedulerFactoryBean() {
    SchedulerFactoryBean schedulerFactoryBean = new SchedulerFactoryBean();
    schedulerFactoryBean.setConfigLocation(new ClassPathResource("quartz.properties"));
    // ...
}
Run Code Online (Sandbox Code Playgroud)

[在XML配置的情况下]:

<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
    <property name="configLocation" value="classpath:quartz.properties" />
    // ...
</bean>
Run Code Online (Sandbox Code Playgroud)


mos*_*a.S 4

哎呀,我发现了问题,实际上代码是通过在代码中创建 Properties 类的实例来覆盖属性文件配置的。所以答案是这一行:

sf = new StdSchedulerFactory("conf/quartz.properties");