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的自定义插件的更多相关文章

  1. 深入学习jQuery自定义插件

    原文地址:jQuery自定义插件学习 1.定义插件的方法 对象级别的插件扩展,即为jQuery类的实例增加方法, 调用:$(选择器).函数名(参数);      $(‘#id’).myPlugin(o ...

  2. jquery自定义插件结合baiduTemplate.js实现异步刷新(附源码)

    上一篇记录了BaiduTemplate模板引擎使用示例附源码,在此基础上对使用方法进行了封装 自定义插件jajaxrefresh.js 代码如下: //闭包限定命名空间 (function ($) { ...

  3. Phonegap中自定义插件的使用

    在phonegap中需要实现特定相关的功能,可能需要自定义扩展一下功能,那么扩展phonegap组件就成为了可能. 源代码结构图: 本文目的在于讲述怎么扩展一个phonegap组件以及实现. 针对ph ...

  4. jquery自定义插件——以 选项卡插件为例

    一直打算尝试自定义插件,终于付诸实践了,现在把内容发表出来,与大家共勉. 我是根据自己正在用的插件,模仿其源码,实现的自定义插件,完成之后,在网上看相关资料,对自定义插件部分,有了更明确的认识. jq ...

  5. Cordova - 与iOS原生代码交互2(使用Swift开发Cordova的自定义插件)

    在前一篇文章中我介绍了如何通过 js 与原生代码进行交互(Cordova - 与iOS原生代码交互1(通过JS调用Swift方法)),当时是直接对Cordova生成的iOS工程项目进行编辑操作的(添加 ...

  6. jQuery自定义插件

    jQuery自定义插件 jQuery自定义插件按照功能分类,可以分为三类, 1>封装对象方法的插件,(也就是基于某个DOM元素的jQuery对象,局部的) 2>封装全局函数的插件,   ( ...

  7. cordova3.X 运用grunt生成plugin自定义插件骨架

    Cordova提供了一组设备相关的API,通过这组API,移动应用能够以JavaScript访问原生的设备功能,如摄像头.麦克风等.Cordova还提供了一组统一的JavaScript类库,以及为这些 ...

  8. cordova /phonegap 自定义插件

    ### cordova /phonegap 自定义插件 在使用cordova 的过程中,虽然官方提供的插件以及其他人开源的插件较多.但有时为了实现某种需求,还是需要自己编写插件. 以前总是会手动的配置 ...

  9. gulp如何自定义插件

    gulp是基于”流“的构建工具,上层流的输出就是下层流的输入,为了更好的支持链式操作,可以使用through2或者map-stream这两个库来对node stream做一层包装 这里,我们就使用th ...

随机推荐

  1. POJ_1321

    题目   在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别.要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆放k个棋子的所有可行的摆 ...

  2. thinkPHP nginx无论怎样访问都会访问index方法解决

    修改项目配置文件 application/config.php中的 pathinfo_fetch的末尾增加 REQUEST_URI 详情参考:https://www.colabug.com/35205 ...

  3. 使用idea建立逆向工程

    逆向工程(Mybatis Generator) 概念 mybatis Generator 中文官网 mybatis需要程序员自己编写sql语句,mybatis官方提供逆向工程,可以针对单表 自动生成m ...

  4. [HTML]将错误alert出来[转]

    <script type="text/javascript"> /** * @param {String} errorMessage 错误信息 * @param {St ...

  5. pytorch 生成随机数

    在使用PyTorch做实验时经常会用到生成随机数Tensor的方法,比如: torch.rand() torch.randn() torch.normal() torch.linespace() 在很 ...

  6. es集群搭建

    1.复制5份es,版本要相同,且各个节点上jdk版本也要相同,否则会报数据同步格式不一致  invalid internal transport message format. 2.配置elastic ...

  7. Fiddler基础使用三之请求过滤

    在我们抓包的时候如果不设置过滤,那么所有操作中的请求都会被捕获下来,如果我们只想查看指定或者某些请求信息,那么太多的session会给我们造成困扰,增加查找难度.所以我们需要设置过滤区域.fiddle ...

  8. 好用的截图picpick工具,无需注册,无需破解

    链接:https://pan.baidu.com/s/1KtgF2wPdbRXAAenvrPiPzA 提取码:vasu

  9. Java框架spring 学习笔记(十八):事务管理(xml配置文件管理)

    在Java框架spring 学习笔记(十八):事务操作中,有一个问题: package cn.service; import cn.dao.OrderDao; public class OrderSe ...

  10. 随便说说sequelize的问题

    最近在做的项目频繁的修改数据库让人感觉很烦躁,sequelize在执行sync的时候只会重新创建表,如果原先有数据只能直接删除,但是这样显然是不行的,因为数据不能就这么消失了吧. 所以必须要migra ...