码迷,mamicode.com
首页 > 其他好文 > 详细

Quartz的自定义插件

时间:2019-03-25 19:22:22      阅读:183      评论:0      收藏:0      [点我收藏+]

标签:turn   调度   throw   obs   shu   字符   toe   ring   context   

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;

    @Override
    public 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());
    }

    @Override
    public void start() {
        log.info("--------------------启动自定义插件 {}-----------------", name);
    }

    @Override
    public void shutdown() {
        log.info("--------------------关闭自定义插件 {}-----------------", name);
    }

    /**
     * 方法返回一个字符串用以说明 JobListener 的名称
     */
    @Override
    public String getName() {
        return "spz-spz";
    }

    /**
     * Scheduler 在 JobDetail 将要被执行时调用这个方法
     */
    @Override
    public void jobToBeExecuted(JobExecutionContext jobExecutionContext) {
        log.info("[自定义插件] 被执行时 " + jobExecutionContext.getJobRunTime());
    }

    /**
     * Scheduler 在 JobDetail 即将被执行,但又被 TriggerListener 否决了时调用这个方法。
     */
    @Override
    public void jobExecutionVetoed(JobExecutionContext jobExecutionContext) {
        log.info("[自定义插件] 即将被执行" + jobExecutionContext.getJobRunTime());
    }

    /**
     * Scheduler 在 JobDetail 被执行完毕
     */
    @Override
    public void jobWasExecuted(JobExecutionContext jobExecutionContext, JobExecutionException e) {
        log.info("[自定义插件] JobListener 执行之后" + jobExecutionContext.getJobRunTime());
    }



}

  

Quartz的自定义插件

标签:turn   调度   throw   obs   shu   字符   toe   ring   context   

原文地址:https://www.cnblogs.com/mlfz/p/10595599.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!