1

Quartz通常通过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。这是您可以使用的示例代码片段:

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 回答