我从许多来源读到人们说有可能并打算在属性文件中实例化侦听器并将其注册到调度程序
但我到处搜索,找不到一个这样的例子。
注意:我正在使用这个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
#监听类#
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.