转载:http://hi.baidu.com/xulin_1027/item/14a98dbc2c3d75432aebe3f3
Quartz 提供了三种类型的监听器:监听 Job 的,监听 Trigger 的,和监听 Scheduler 自已的。
本章解释如何应用每一种类型来更好的管理你的 Quartz 应用,并获悉到什么事件正在发生。
实现监听器的方法通用于所有的三种类型。可以分成以下步骤:
1. 创建一个 Java 类,实现监听器接口
2. 用你的应用中特定的逻辑实现监听器接口的所有方法
3. 注册监听器
JobListener 和 TriggerListener 可被注册为全局或非全局监听器。一个全局监听器能接收到所有的 Job/Trigger 的事件通知。而一个非全局监听器(或者说是一个标准的监听器) 只能接收到那些在其上已注册了监听器的 Job 或 Triiger 的事件。
一、 监听 Job 事件
org.quartz.JobListener 接口包含一系列的方法,它们会由 Job 在其生命周期中产生的某些关键事件时被调用。JobListener分为全局监听和局部监听,具体实现如下:
全局:
JobListener jobListener = new SimpleJobListener("SimpleJobListener"); scheduler.addGlobalJobListener(jobListener); scheduler.start();
局部:
JobListener jobListener =new SimpleJobListener("SimpleJobListener"); scheduler.addJobListener(jobListener); jobDetail.addJobListener(jobListener.getName()); scheduler.scheduleJob(jobDetail, trigger); scheduler.start();
注意:注册的方法,另外对于非全局的 JobListener,它应于任何引用到它的 JobDetail 使用 schedulerJob() 或 addJob() 方法注册之前被注册。
二、监听 Trigger 事件
org.quartz.TriggerListener 接口也包含一系列给 Scheduler 调用的方法。然而,与 JobListener 有所不同的是, TriggerListener 接口还有关于 Trigger 实例生命周期的方法。
监听的实现和job的监听基本差不多,对于全局和局部说明:
scheduler.addGlobalTriggerListener(new SimpleMyTriggerListener()); 和 scheduler.addTriggerListener( triggerListener );
对于局部监听要注意是的对特定的trigger.addTriggerListener( triggerListener.getName() );添加监听,注意名字要监听器的名称要相同。
和非全局的 JobListener 提到的相同的警告可以应用到这里来;
你必须在把它设置给 Trigger 实例并存储了 Trigger 之前把 TriggerListener 加入到 Scheduler 中。
三、 监听 Scheduler 事件
org.quartz.SchedulerListener 接口包含了一系列的回调方法,它们会在 Scheduler 的生命周期中有关键事件发生时被调用。
public void startScheduler() throws SchedulerException { Scheduler scheduler = null; scheduler = StdSchedulerFactory.getDefaultScheduler(); //添加监听 SchedulerListener schedulerListener = new SimpleSchedulerListener(); scheduler.addSchedulerListener(schedulerListener); scheduler.start(); //注册作业和触发器 JobDetail jobDetail = new JobDetail("PrintInfoJob",Scheduler.DEFAULT_GROUP, MyJob.class); Trigger trigger = TriggerUtils.makeSecondlyTrigger(5); trigger.setName("SimpleTrigger"); trigger.setStartTime(new Date()); scheduler.scheduleJob(jobDetail, trigger); }
在代码中,Scheduler 创建后是在 Job 注册之前被启动的。这就使得在 Job 部署时 jobScheduled() 方法能得到调用。我们也改变了 Trigger 只重复两次而不是无限的运行。这样能强制 triggerFinalized() 方法被调用,因为这个 Trigger 不再有机会触发了。除了这些人为的条件外,使用 SchedulerListener 就和使用 Job 或 Trigger 监听器是一样的了。
关于监听类可以查考API具体了解其中方法
相关推荐
Quartz框架包含了调度器监听、作业和触发器监听。你可以配置作业和触发器监听为全局监听或者是特定于作业和触发器的监听。Quartz 允许开发人员根据时间间隔(或天)来调度作业。它实现了作业和触发器的多对多关系,...
NULL 博文链接:https://skyfar666.iteye.com/blog/2205583
包含Java中使用Quartz进行任务调度常用操作:设置开始时间、设置结束时间、简单触发器、Cron触发器、作业监听器、启动多个作业、查看所有作业、手动触发作业、传递参数、取消/删除作业、作业出错时自动再执行等代码...
内容提要:简单介绍了监听器是 Quartz 框架的一个扩展点,实现一个监听器的基本步骤,最后说明了全局监听器和非全局监听器的区别。 第七章. 实现 Quartz 监听器 (第二部分) 内容提要:JobListener (Job 监听器) 的...
花了两周,学习了下springboot,然后做个小东西练练手.项目基于jdk1.8整合了springboot+mvc+mybatis(通用mapper)+druid+jsp+...quartz定时任务(没有具体业务实现)等技术点都在项目中实现了,可谓是麻雀虽小五脏俱全!
Quartz提供了更多的调度策略、任务监听器等功能。 以上是一些在Spring Boot中实现任务管理的常见方案。你可以根据具体需求选择合适的方式来执行任务,并通过配置和注解来定制任务的执行时间和逻辑。
兼容性好,需要定时的任务只依赖于控制台命令,能在命令行中执行的程序都可以执行。意味着可以定时执行包括exe在内的,python,nodejs,甚至matlab等程序 扩展性强,目前可以直接通过对数据库的操作来修改各个任务的...
springboot+Listener(监听器),Filter(过滤器),Interceptor(拦截器),Servlet,springmvc静态资源,文件上传下载,多数据源切换,缓存,quartz定时任务(没有具体业务实现)等技术点都在项目中实现了,可谓是麻雀虽小五脏俱全!...
springboot+Listener(监听器),Filter(过滤器),Interceptor(拦截器),Servlet,springmvc静态资源,文件上传下载,多数据源切换,缓存,quartz定时任务(没有具体业务实现)等技术点都在项目中实现了,可谓是麻雀虽小五脏俱全!...
Quartz是功能强大的开源作业调度库,几乎可以集成到任何Java应用程序中-从最小的独立应用程序到最大的电子商务系统。Quartz可用于创建简单或复杂的计划,以执行...3、Quartz附带了许多“工厂内置”的插件和监听器。
springboot+Listener(监听器),Filter(过滤器),Interceptor(拦截器),Servlet,springmvc静态资源,文件上传下载,多数据源切换,缓存,quartz定时任务(没有具体业务实现)等技术点都在项目中实现了,可谓是麻雀虽小五脏俱全!...
springboot+Listener(监听器),Filter(过滤器),Interceptor(拦截器),Servlet,springmvc静态资源,文件上传下载,多数据源切换,缓存,quartz定时任务(没有具体业务实现)等技术点都在项目中实现了,可谓是麻雀虽小五脏俱全!...
springboot+Listener(监听器),Filter(过滤器),Interceptor(拦截器),Servlet,springmvc静态资源,文件上传下载,多数据源切换,缓存,quartz定时任务(没有具体业务实现)等技术点都在项目中实现了,可谓是麻雀虽小五脏俱全!...
springboot+Listener(监听器),Filter(过滤器),Interceptor(拦截器),Servlet,springmvc静态资源,文件上传下载,多数据源切换,缓存,quartz定时任务(没有具体业务实现)等技术点都在项目中实现了,可谓是麻雀虽小五脏俱全!...
springboot+Listener(监听器),Filter(过滤器),Interceptor(拦截器),Servlet,springmvc静态资源,文件上传下载,多数据源切换,缓存,quartz定时任务(没有具体业务实现)等技术点都在项目中实现了,可谓是麻雀虽小五脏俱全!...
small-applications 结合SpringBoot、Shiro和JWT实现的...使用shiro做登录和权限验证 使用jwt做无状态应用的用户校验 禁用session 支持跨域访问 统一异常处理 监听器 拦截器 过滤器 ...quartz动态定时任务,添加、删除任务
day21_监听器 day22_文件上传与下载 day23_基础加强 day24_在线支付&JavaMail; day25_编码实战day01 day26_编码实战day02 day27_编码实战day02 day28_struts2基础 day29_struts2加强 day30_struts2拦截器&...
6.19. 监听器、信使和动作 39 6.20. 响应处理 43 6.21. 执行过程中的错误处理 43 6.22. 元数据和过滤器 44 6.23. 什么是服务 45 6.24. 服务调用者 45 7. 第五章 使用消息 47 7.1. 怎样使用消息 47 7.2. 消息的结构 ...
7.3.2 使用Quartz调度器 7.3.3 按调度计划调用方法 7.4 使用JMS发送消息 7.4.1 使用JMS模板发送消息 7.4.2 消费消息 7.4.3 转换消息 7.5 小结 第三部分 Spring在Web层的应用 第8章...
16 表设计: 表字符:utf-8、utf8 表字段: 主键、bigint(20) 自增、(32) UUID、不能为空 索引: 外键、关联字段、查询比较频繁的字段 单表:500M、索引个数16个 临时表、存储过程、视图、触发器、监听器数据库...