8

Quartz.properties ファイルで次のプロパティを設定します。

org.quartz.threadPool.threadCount = 60
org.quartz.scheduler.batchTriggerAcquisitionMaxCount = 60

、しかし、何らかの理由で、どうやらそれは効果がありません。アプリケーションを起動すると、ログはプール内でまだ 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.**

私は知っています、quartz.properties がクラスパスにある必要があります。そして私はちょうどそれをしました。このファイルが検出されない他の理由はありますか? または検出されますが、スレッド数が正しく設定されていませんか?

ありがとう

4

3 に答える 3

12

Spring + Quartz を使用していて、quartz.propertiesファイルが機能しない (つまり、アプリケーションの起動中に無視される) 場合:

org.quartz.SchedulerQuartz のドキュメントに記載されているように、Spring Factory Bean () によってインスタンス化されたQuartz Scheduler ( ) は、デフォルトではクラスパスからファイルをorg.springframework.scheduling.quartz.SchedulerFactoryBean読み取りませんquartz.properties。参照を手動で設定する必要があります。

[Java構成の場合]:

@Bean
public SchedulerFactoryBean schedulerFactoryBean() {
    SchedulerFactoryBean schedulerFactoryBean = new SchedulerFactoryBean();
    schedulerFactoryBean.setConfigLocation(new ClassPathResource("quartz.properties"));
    // ...
}

[XML設定の場合]:

<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
    <property name="configLocation" value="classpath:quartz.properties" />
    // ...
</bean>
于 2016-03-21T15:51:50.293 に答える
4

おっと、問題が見つかりました。実際には、コードで Properties クラスのインスタンスを作成することにより、コードがプロパティ ファイルの構成をオーバーライドしていまし。答えはこの行です:

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

于 2013-06-03T04:58:35.270 に答える