Quartz--Listener

监听器方便在Trigger执行完毕,Trigger执行错误等地方进行监听处理。

下面代码举个SchedulerListener的例子: 在Trigger最后一次执行的时候监听

<span style="font-family:Microsoft YaHei;font-size:18px;">import javax.annotation.Resource;
import org.quartz.JobDetail;
import org.quartz.JobKey;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.SchedulerListener;
import org.quartz.Trigger;
import org.quartz.TriggerKey;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service;

/**
 *
 * @ClassName: SchedulerTriggerListener
 * @Description: Trigger监听器
 * @author zhuyb
 * @date 2014-12-15 下午7:39:28
 *
 */
@Service("schedulerTriggerListenerService")
public class SchedulerTriggerListenerServiceImpl implements SchedulerListener {

	private static Logger logger = LoggerFactory.getLogger(SchedulerTriggerListenerServiceImpl.class);

	@Resource
	private SchedulerTriggersService schedulerTriggersService;

	@Resource
	private Scheduler scheduler;

	@Override
	public void jobScheduled(Trigger trigger) {
		// TODO Auto-generated method stub

	}

	@Override
	public void jobUnscheduled(TriggerKey triggerKey) {
		// TODO Auto-generated method stub

	}

    /**
     *
     * @Title: triggerFinalized
     * @Description: 轮询删除已被Quartz删除的内容
     * @param @param trigger
     * @author zhuyb
     * @throws
     */
	@Override
	public void triggerFinalized(Trigger trigger) {
		try {
			if (trigger.getNextFireTime() == null) {
			    logger.info("Name="+trigger.getKey().getName()+ ", Group=" + trigger.getKey().getGroup());
				int i = schedulerTriggersService.deleteByNotExistInTriggers();
				logger.info("删除行数:" + i);
			}
		} catch (Exception e) {
		    logger.error("监听器错误:",e);
		}
	}

	@Override
	public void triggerPaused(TriggerKey triggerKey) {

	}

	@Override
	public void triggersPaused(String triggerGroup) {
		// TODO Auto-generated method stub

	}

	@Override
	public void triggerResumed(TriggerKey triggerKey) {
		// TODO Auto-generated method stub

	}

	@Override
	public void triggersResumed(String triggerGroup) {
		// TODO Auto-generated method stub

	}

	@Override
	public void jobAdded(JobDetail jobDetail) {
		// TODO Auto-generated method stub

	}

	@Override
	public void jobDeleted(JobKey jobKey) {
	}

	@Override
	public void jobPaused(JobKey jobKey) {
		// TODO Auto-generated method stub

	}

	@Override
	public void jobsPaused(String jobGroup) {
		// TODO Auto-generated method stub

	}

	@Override
	public void jobResumed(JobKey jobKey) {
		// TODO Auto-generated method stub

	}

	@Override
	public void jobsResumed(String jobGroup) {
		// TODO Auto-generated method stub

	}

	@Override
	public void schedulerError(String msg, SchedulerException cause) {
		// TODO Auto-generated method stub

	}

	@Override
	public void schedulerInStandbyMode() {
		// TODO Auto-generated method stub

	}

	@Override
	public void schedulerStarted() {
	}

	@Override
	public void schedulerStarting() {

	}

	@Override
	public void schedulerShutdown() {
		// TODO Auto-generated method stub

	}

	@Override
	public void schedulerShuttingdown() {

	}

	@Override
	public void schedulingDataCleared() {
		// TODO Auto-generated method stub

	}

</span>

其实可以不必实现上述接口(有一堆你不需要的方法要重写), 可以用SchedulerListenerSupport替代,只需要实现需要的方法。

监听注册:

        @Resource
	private Scheduler scheduler;
	@Resource
	private SchedulerTriggerListenerServiceImpl schedulerTriggerListener;
        scheduler.getListenerManager().addSchedulerListener(schedulerTriggerListener);

以上就是一个监听器在Spring的完整集成。

具体很多其他的监听功能看业务需求吧

官方API差不多够用了:

时间: 2024-10-08 21:55:15

Quartz--Listener的相关文章

Tomcat+Spring+Quartz Restart or shutdown error

环境描述 Intellij Idea 14.1.7 Tomcat 6.0.48 Spring 2.5.6.SEC01 Quartz 1.8.5 问题描述 在 Intellij Idea 中首次可以正常启动 Tomcat 和 Web 应用,但是在 Intellij Idea 中执行重启的时候,控制台中就会包以下的错误,导致无法正常重启或者关闭,必须要启动任务管理器, 强制杀调 java.exe 进程才行. 严重: The web application [] appears to have sta

作业引擎quartz.net --- 监听链

针对多个作业:如何描述各个跑批任务之间的顺序,紧前.紧后关系,实现灵活调度.例如:A完成则B开始,B完成C开始. 对quartz.net 进行了查阅,能实现如上业务,如下图: 测试代码: using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using Quartz;using Quartz.Impl;using Quartz.I

项目中使用Quartz集群分享--转载

项目中使用Quartz集群分享--转载 在公司分享了Quartz,发布出来,希望大家讨论补充. CRM使用Quartz集群分享  一:CRM对定时任务的依赖与问题  二:什么是quartz,如何使用,集群,优化  三:CRM中quartz与Spring结合使用 1:CRM对定时任务的依赖与问题  1)依赖  (1)每天晚上的定时任务,通过sql脚本 + crontab方式执行 Xml代码   #crm 0 2 * * * /opt/***/javafiles/***/shell/***_dail

[C#][Quartz]添加监听器

namespace Quartz.Listener { public class SchedulerListener : SchedulerListenerSupport { private static log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name); public override void JobAdded(

浅谈Quartz定时任务调度

原文:浅谈Quartz定时任务调度 一  开发概述 对于具有一定规模的大多数企业来说,存在着这样一种需求:存在某个或某些任务,需要系统定期,自动地执行,然而,对大多数企业来说,该技术的实现,却是他们面临的一大难点和挑战.  对于大部分企业来说,实现如上功能,挑战在哪里? 挑战一:如何做一个自动服务的系统? 是从0到1开发(费时费力花钱,还不一定开发成功,即使开发成功,也未必好用),还是购买第三方服务(花钱). 挑战二:如何实现复杂的"定期规则"? 对于简单的定期规则,可以借助于wind

spring+freemarker+redis

1./pom.xml文件内容: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

SSM框架整合(IntelliJ IDEA + maven + Spring + SpringMVC + MyBatis)

原文链接: http://blog.csdn.net/gallenzhang/article/details/51932152 本篇文章主要内容是介绍如何使用IntelliJ IDEA创建spring+ SpringMVC + MyBatis项目,下面会给出项目搭建的详细步骤以及相关的配置文件. =======================================前言 p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "Helve

IntelliJ IDEA 14.0.3 实战搭建Spring+SpringMVC+MyBatis组合框架

简介 Spring+SpringMVC+MyBatis框架(SSM)是比较热门的中小型企业级项目开发的框架,对于新手来说也是比较容易学习入门的.虽说容易,但在框架搭建过程中仍然遇到了许多问题,因此用实例记录下来吧. 实践部署 一丶创建一个基础的Spring+Spring-MVC项目: ⑴:File>New Project,由于使用maven管理项目所以创建时我们直接选择创建Maven工程,并勾选"Createe from archetype" 表示使用于模板进行创建.并找到mav

idea spring+springmvc+mybatis环境配置整合详解

idea spring+springmvc+mybatis环境配置整合详解 1.配置整合前所需准备的环境: 1.1:jdk1.8 1.2:idea2017.1.5 1.3:Maven 3.5.2 2.查看idea中是否安装Maven插件: 2.1:File --> Settings --> Plugins 2.2:如下图所示的步骤进行操作(注:安装完插件,idea会重新启动) 3.idea创建Maven项目的步骤 4.搭建目录结构 下图就是我搭建Maven项目之后,添加对应的目录和文件 5.p

ssm从无到有

今天要总结一下ssm(spring ,springmvc ,mybatis)框架的一个大的基本结构的搭建,在刚刚学习这个的时候,经常会晕头转向,归根到底还是不能静下心去琢磨琢磨.废话不多说了. 工程创建 首先我们要创建一个工程, 按照图上就行记得?,然后 第一个项目组的唯一识别,第二个是项目的名称,继续next, 这里会让你配置maven的信息,如果没装的自己去装一下,然后第一行需要的是你的maven的安装的路径,第二个需要你的maven中的setting的配置文件,如果不了解 maven,可以