1

クォーツは通常quartz.properties、クラスパスを介して構成されます。

例えば:

org.quartz.scheduler.instanceName = BagginsScheduler
org.quartz.threadPool.class=org.quartz.simpl.SimpleThreadPool   
org.quartz.threadPool.threadCount=5  
org.quartz.threadPool.threadPriority=1  

Quartzジョブを実行するのと同じアプリケーション内から、プロパティを読み取りたいと思います。

スケジューラー名の読み取りは簡単です。

Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();  
String name = scheduler.getSchedulerName();

しかし、どうすれば `threadPriority'プロパティを読み取ることができますか?

以下は機能しません。

scheduler.getContext().getString("org.quartz.threadPool.threadPriority");

更新された解決策:プロパティはQuartz APIを介して読み取ることができないようです、通常の方法で実行する必要がありますProperties

Properties prop = new Properties();
prop.load(AnyClassUsedByJVM.class.getClassLoader().getResourceAsStream("quartz.properties"));
String prio = prop.getProperty("org.quartz.threadPool.threadPriority");

これは正常に機能します。

4

1 に答える 1

2

そのプロパティをに追加するだけですquartz.properties。例えば:

org.quartz.threadPool.threadPriority=3

詳細については、こちら構成ドキュメントを参照してください

編集:実行時にプロパティを読み取るには、プロパティを使用できます。使用できるコードのサンプルスニペットは次のとおりです。

Properties p = new Properties();
p.load("/tmp/quartz.properties"); // path to your properties file
System.out.println(p.getProperty("org.quartz.threadPool.threadPriority"); // prints 3
于 2012-12-31T15:10:59.577 に答える