我已经从很多来源读到人们说过有可能并且意图让听众可以在属性文件中实例化并注册到调度程序的所有内容如何在quartz.properties文件中实例化并注册JobListener?
但是我到处搜索并找不到单个这个例子。
注意:我正在使用此Quartz Initiazlizer Servlet来启动我的调度程序。因此,我将无法使用将JobListener注册到调度程序的传统方法。这样做的另一种方法是非常接受
基本上我想这样做:
JobListener jobListener = new SchedulerGlobalListener();
scheduler.getListenerManager().addJobListener(jobListener);
在这个(下quartz.properties)
org.quartz.jobListener.NAME.class = com.foo.MyListenerClass
org.quartz.jobListener.NAME.propName = propValue
org.quartz.jobListener.NAME.prop2Name = prop2Value
* * 下面是我”已经尝试过,结果为
#quartz.properties#
org.quartz.jobListener.SchedulerGlobalListener.class = com.scheduler.SchedulerGlobalListener
#listener类#
public class SchedulerGlobalListener implements JobListener {
private String name;
public SchedulerGlobalListener() {
}
public SchedulerGlobalListener(String name) {
if(name.isEmpty())
{
this.name = "SchedulerGlobalListener";
}
else
{
this.name = name;
}
}
@Override
public String getName() {
return name;
}
public String setName(String name) {
return name;
}
@Override
public void jobToBeExecuted(JobExecutionContext context) {
// do something with the event
}
@Override
public void jobWasExecuted(JobExecutionContext context, JobExecutionException jobException) {
System.out.println("I just ran this job: " + context.getJobDetail().getJobClass().getName());
}
@Override
public void jobExecutionVetoed(JobExecutionContext context) {
// do something with the event
}
}
结果:
INFO: QuartzInitializer: Quartz Scheduler failed to initialize: java.lang.IllegalArgumentException: JobListener name cannot be empty.
感谢您的回答,但这根本不是我想要的。我已经更新了我的问题 – Vyrnach
我在项目中使用了Spring,但我没有将它用于我的石英调度程序。我用这个来初始化调度器 http://quartz-scheduler.org/api/2.1.7/org/quartz/ee/servlet/QuartzInitializerServlet.html – Vyrnach
我没有用这种方式使用石英,但我更新我的答复提供给财产工厂的财产文件选项 –