Quartz的自定义插件
2024-10-12 00:22:52
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());
} }
最新文章
- 子DIV设置margin-top影响父DIV位置的解决办法
- 第三十三章 metrics(1) - graphite搭建 + whisper存储模式 + 高精度向低精度聚合方式 + 集成StatsD + 集成grafana
- ruby -- 进阶学习(三)Strong Parameters在rail3.0和4.0中的区别
- Object C学习笔记21-typedef用法
- Union的妙用和注意
- 信息传递--NOIP2015 day1 T2--暴力
- 用tbody代替div 解决 table tr的隐藏问题
- Buenos Aires和Rio de Janeiro怎么发音?
- 类(class)能不能自己继承自己(转)
- Spring MVC 项目搭建 -5- spring security 使用数据库进行验证
- Linux学习(四)单用户模式、救援模式、虚拟机克隆、linux互连(包括密匙登录)
- 【JSP/Servlet】后台如何获取复选框或可选属性的同名参数
- LeetCode(40)-Merge Sorted Array
- api_response.go
- Linux(CentOS 7)安装测试svn服务
- Delete from join 用法
- spring boot 热部署,省去频繁编译的步骤
- 像调试java一样来调试Redis lua
- 用grunt对css代码进行压缩
- pytorch例子学习-DATA LOADING AND PROCESSING TUTORIAL
热门文章
- python3 写excel文件 xlsxwriter模块
- Mybatis学习 day02
- SpringBoot 配置Redis
- docker 独立搭建linux + php 随笔
- dev: `webpack-dev-server --inline --progress --config build/webpack.dev.conf.js` vue启动报错解决
- 最大化系统并发连接数.Windows.reg
- ansible简介,简单实用
- linux 查看文件方法
- spring boot 2 统一异常处理
- 【C++】C++string类总结