Quartz的自定义插件

发布时间:2025-12-09 18:25:58 浏览次数:4

quartz本身插件:

LoggingJobHistoryPlugin,LoggingTriggerHistoryPlugin分别可以打印scheduler容器管理的所有triggers和jobDetails的运行日志。 插件XMLSchedulingDataProcessorPlugin

支持使用xml方式管理trigger&job任务(不同于spring对quartz的封装,但很类似), 一个是支持scheduler的管理的插件。JobInterruptMonitorPlugin监控job执行假死插件(执行时间过长)。ShutdownHookPlugin 捕获JVM终止的事件,并在调度程序上调用shutdown

我们可以自定义插件

public class QuartzPlugins implements SchedulerPlugin, JobListener {private String name;private Scheduler scheduler;@Overridepublic void initialize(String s, Scheduler scheduler, ClassLoadHelper classLoadHelper) throws SchedulerException {this.name = s;this.scheduler = scheduler;log.info("--------------------初始化自定义插件 {}-----------------", name);scheduler.getListenerManager().addJobListener(this, EverythingMatcher.allJobs());}@Overridepublic void start() {log.info("--------------------启动自定义插件 {}-----------------", name);}@Overridepublic void shutdown() {log.info("--------------------关闭自定义插件 {}-----------------", name);}/*** 方法返回一个字符串用以说明 JobListener 的名称*/@Overridepublic String getName() {return "spz-spz";}/*** Scheduler 在 JobDetail 将要被执行时调用这个方法*/@Overridepublic void jobToBeExecuted(JobExecutionContext jobExecutionContext) {log.info("[自定义插件] 被执行时 " + jobExecutionContext.getJobRunTime());}/*** Scheduler 在 JobDetail 即将被执行,但又被 TriggerListener 否决了时调用这个方法。*/@Overridepublic void jobExecutionVetoed(JobExecutionContext jobExecutionContext) {log.info("[自定义插件] 即将被执行" + jobExecutionContext.getJobRunTime());}/*** Scheduler 在 JobDetail 被执行完毕*/@Overridepublic void jobWasExecuted(JobExecutionContext jobExecutionContext, JobExecutionException e) {log.info("[自定义插件] JobListener 执行之后" + jobExecutionContext.getJobRunTime());}}

  

转载于:https://www.cnblogs.com/mlfz/p/10595599.html

需要做网站?需要网络推广?欢迎咨询客户经理 13272073477