如何添加 Quartz JobListener
How to add Quartz JobListener
我正在编写一个 java/spring 库以包含在其他使用 quartz 的项目中。我需要它在执行每个任务之前记录一些东西。
我有一个简单的 JobListener,如下所示:
public class MyJobListener extends JobListenerSupport {
private static final Logger log = LogManager.getLogger(LoggingJobListener.class);
@Override
public String getName() {
return "MyJobListener";
}
@Override
public void jobToBeExecuted(JobExecutionContext context) {
log.info("job will start")
}
}
我知道我们可以做这样的事情来添加工作侦听器:
scheduler.getListenerManager().addJobListener(myJobListener, allJobs());
但是我怎样才能添加调度程序以便添加侦听器?
我已经尝试实现 SchedulerFactoryBeanCustomizer
但不知道如何添加侦听器(因为尚未创建调度程序?)
您可以添加一个 Postconstruct 并在那里添加 JobListener。
@Component
public class JobListenerConfig {
@Autowired
private SchedulerFactoryBean schedulerFactoryBean;
@PostConstruct
public void addListeners() throws SchedulerException {
schedulerFactoryBean.getScheduler()
.getListenerManager()
.addJobListener(new MyJobListener());
}
}
我正在编写一个 java/spring 库以包含在其他使用 quartz 的项目中。我需要它在执行每个任务之前记录一些东西。
我有一个简单的 JobListener,如下所示:
public class MyJobListener extends JobListenerSupport {
private static final Logger log = LogManager.getLogger(LoggingJobListener.class);
@Override
public String getName() {
return "MyJobListener";
}
@Override
public void jobToBeExecuted(JobExecutionContext context) {
log.info("job will start")
}
}
我知道我们可以做这样的事情来添加工作侦听器:
scheduler.getListenerManager().addJobListener(myJobListener, allJobs());
但是我怎样才能添加调度程序以便添加侦听器?
我已经尝试实现 SchedulerFactoryBeanCustomizer
但不知道如何添加侦听器(因为尚未创建调度程序?)
您可以添加一个 Postconstruct 并在那里添加 JobListener。
@Component
public class JobListenerConfig {
@Autowired
private SchedulerFactoryBean schedulerFactoryBean;
@PostConstruct
public void addListeners() throws SchedulerException {
schedulerFactoryBean.getScheduler()
.getListenerManager()
.addJobListener(new MyJobListener());
}
}