Quartz TriggerListener 触发器监听器
Quartz Scheduler 可以对Trigger建立一个监听器,分别对Trigger的各种状态进行监听
实现监听器需要实现TriggerListener接口,然后注册到Scheduler上就可以了。
一:写一个类实现触发器监听接口
package com.gary.operation.jobdemo.example1; import org.quartz.JobExecutionContext;
import org.quartz.Trigger;
import org.quartz.Trigger.CompletedExecutionInstruction;
import org.quartz.TriggerListener; public class MyTriggerListener implements TriggerListener { @Override
public String getName() {
return "MyOtherTriggerListener";
} /**
* (1)
* Trigger被激发 它关联的job即将被运行
* Called by the Scheduler when a Trigger has fired, and it's associated JobDetail is about to be executed.
*/
@Override
public void triggerFired(Trigger trigger, JobExecutionContext context) {
System.out.println("MyOtherTriggerListener.triggerFired()");
} /**
* (2)
* Trigger被激发 它关联的job即将被运行,先执行(1),在执行(2) 如果返回TRUE 那么任务job会被终止
* Called by the Scheduler when a Trigger has fired, and it's associated JobDetail is about to be executed
*/
@Override
public boolean vetoJobExecution(Trigger trigger, JobExecutionContext context) {
System.out.println("MyOtherTriggerListener.vetoJobExecution()");
return false;
} /**
* (3) 当Trigger错过被激发时执行,比如当前时间有很多触发器都需要执行,但是线程池中的有效线程都在工作,
* 那么有的触发器就有可能超时,错过这一轮的触发。
* Called by the Scheduler when a Trigger has misfired.
*/
@Override
public void triggerMisfired(Trigger trigger) {
System.out.println("MyOtherTriggerListener.triggerMisfired()");
} /**
* (4) 任务完成时触发
* Called by the Scheduler when a Trigger has fired, it's associated JobDetail has been executed
* and it's triggered(xx) method has been called.
*/
@Override
public void triggerComplete(Trigger trigger, JobExecutionContext context,
CompletedExecutionInstruction triggerInstructionCode) {
System.out.println("MyOtherTriggerListener.triggerComplete()");
} }
二进行注册: 细节与注册任务监听器一样(http://www.cnblogs.com/daxin/archive/2013/05/29/3105830.html)
Registering A TriggerListener With The Scheduler To Listen To All Triggers scheduler.getListenerManager().addTriggerListener(myTriggerListener, allTriggers()); Registering A TriggerListener With The Scheduler To Listen To A Specific Trigger scheduler.getListenerManager().addTriggerListener(myTriggerListener, triggerKeyEquals(triggerKey("myTriggerName", "myTriggerGroup"))); Registering A TriggerListener With The Scheduler To Listen To All Triggers In a Group scheduler.getListenerManager().addTriggerListener(myTriggerListener, triggerGroupEquals("myTriggerGroup"));
Quartz TriggerListener 触发器监听器的更多相关文章
- Quartz Cron 触发器 Cron Expression 的格式
转自:http://blog.csdn.net/yefengmeander/article/details/5985064 上一文中提到 Cron触发器可以接受一个表达式来指定执行JOB,下面看看这个 ...
- quartz的触发器CronTriggerBean 配置
一个Quartz的CronTrigger表达式分为七项子表达式,其中每一项以空格隔开,从左到右分别是:秒,分,时,月的某天,月,星期的某天,年:其中年不是必须的,也就是说任何一个表达式最少需要六项! ...
- spring quartz的触发器CrontriggerBean配置
每一个quartz的CronTrigger表达式分为七个子表达式,每个子表达式之间用空号分割,分别是:秒 分 时 日 月 星期 年.其中年不是必须的,所以CronTrigger最少有六个子表达式. 每 ...
- 【 Quartz】使用 JobListener (任务监听器可实现) 我想在一个任务执行后在执行第二个任务怎么办呢
http://liuzidong.iteye.com/blog/1147528 Quartz之JobExecutionException 博客分类: Java Quartz quartzjobexec ...
- Quartz定时任务学习(九)Quartz监听器
Quartz 提供了三种类型的监听器:监听 Job 的,监听 Trigger 的,和监听 Scheduler 自已的. 本章解释如何应用每一种类型来更好的管理你的 Quartz 应用,并获悉到什么事件 ...
- [译]Quartz.NET 框架 教程(中文版)2.2.x 之第七课 触发监听器和作业任务监听器
第七课:触发监听器和作业任务监听器 监听器是在调度器中基于事件机制执行操作的对象.你大概可以猜到,触发监听器接收响应跟触发器有关的事件,作业任务监听器接收响应跟作业任务有关的事件. 跟触发器有关的事件 ...
- Quartz使用(4) - Quartz监听器Listerner
1. 概述 Quartz的监听器用于当任务调度中你所关注事件发生时,能够及时获取这一事件的通知.类似于任务执行过程中的邮件.短信类的提醒.Quartz监听器主要有JobListener.Trigger ...
- Quartz任务调度(5)TriggerListener分版本超详细解析
TriggerListener 在我们的触发器监听器中,也包含了一系列监听方法 方法 说明 getName() 定义并返回监听器的名字 triggerFired() 当与监听器相关联的 Trigger ...
- Quartz集群
为什么选择Quartz: 1)资历够老,创立于1998年,比struts1还早,但是一直在更新(27 April 2012: Quartz 2.1.5 Released),文档齐全. 2)完全由Jav ...
随机推荐
- Android studio 中创建AIDL Service
1.概述 AIDL在android系统中的作用 AIDL,Android Interface definition language的缩写,它是一种android内部进程通信接口的描写叙述语言, ...
- jdk动态代理与cglib动态代理例子
1.JAVA的动态代理特征:特征是代理类与委托类有同样的接口,代理类主要负责为委托类预处理消息.过滤消息.把消息转发给委托类,以及事后处理消息等.代理类与委托类之间通常会存在关联关系,一个代理类的对象 ...
- ICDAR 成绩 前5企业和高校
11月20日,有光学字符识别(OCR)领域“奥斯卡”之称的国际文档分析与识别大会(ICDAR)数据集最新结果公布,中国高校及企业包揽排行榜前五. ICDAR2015数据集前五名及框架名称分别是:云从科 ...
- java 执行mysql 8.0.11存储过程报错The user specified as a definer ('root'@'10.%.%.%') does not exist解决办法
执行存储过程,报错 java.sql.SQLException: The user specified as a definer ('root'@'10.%.%.%') does not exist ...
- centos7 安装后需要做的事情
安装centos 7 系统之后要做的几件事 #修改主机名 hostnamectl --static set-hostname xd-1 vim /etc/hosts127.0.0.1 xd-1x.x. ...
- 关于 IOS code signe 和 Provisioning Files 机制 浅析
可以先读下这个译文. http://www.cnblogs.com/zilongshanren/archive/2011/08/30/2159086.html 读后,有以下疑惑. 在mac 机上生成的 ...
- MySQL 5.6学习笔记(运算符)
MySQL运算符包括四类:算术运算符.比较运算符.逻辑运算符和位运算符. 1. 算术运算符 用于种类数值运算.包括:加(+).减(-).乘(*).除(/).取余(%). 除法除数为零时,执行结果为nu ...
- jsp 嵌入页面
<section id="main-content"> <section class="wrapper"> <jsp:includ ...
- rpmverify命令用来验证已安装的rpm软件包的正确性
-Va:验证所有软件包: 来自: http://man.linuxde.net/rpmverify -Va:验证所有软件包: [root@DB ~]# rpmverify -Va ....L.... ...
- 服务器有无中木马前期诊断 注意:wget最好是从服务器上卸载掉,因为多数情况是wget下载木马到服务器的
# rpm -qf /usr/bin/wget wget-.el6_6..x86_64 rpm -e --nodeps wget 有无下列文件: cat /etc/rc.d/init.d/selinu ...