SSH中 集成Quartz任务调度一 普通定时任务

废话不多说,我的任务的配置文件都是交给 applicationContext.xml 处理的!

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"
 xmlns:tx="http://www.springframework.org/schema/tx" xmlns:context="http://www.springframework.org/schema/context"
 xmlns:p="http://www.springframework.org/schema/p"
 xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd">
 <!-- 加入注解支持 -->
 <context:annotation-config />
 <!-- 启用Spring对@AspectJ的支持 -->
 <aop:aspectj-autoproxy />
 <context:component-scan base-package="com.jiyuan.qqapp">
 </context:component-scan>
 <import resource="applicationContext-giant.xml" />
 <import resource="dataSource-config.xml" />
 <import resource="services.xml" />
 <import resource="sessionFactory-config.xml" />
 <import resource="transaction-config.xml" />
  <import resource="task-config.xml" />
</beans>

任务配置文件 task-config.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
    
 <!-- 要调用的工作类 -->
  <bean id="qqmsgTask" class="com.jiyuan.qqapp.task.busqq.GetQQMsgTask"/>
  
 <!-- 定义调用对象和调用对象的方法 -->
   <bean id="getqqmsgTsk" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
     <!-- 调用的类 -->
     <property name="targetObject" ref="qqmsgTask" />
      <!-- 调用类中的方法 -->
     <property name="targetMethod" value="deleteAttachments" />
  </bean>
  
    <!-- 定义触发时间 -->
  <bean id="getqqmsgTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
    <property name="jobDetail" ref="getqqmsgTsk" />
      <!-- cron表达式 此处定义为一直触发执行任务 -->
    <!--<property name="cronExpression" value="10,15,20,25,30,35,40,45,50,55 * * * * ?" /> -->
    <!-- run every morning at 0 AM -->
    <!-- 10 0/1 * * * ? every minute -->
     <property name="cronExpression" value="0 0 0 * * ?" /> 
  </bean>
  
  <!-- 总管理类 如果将lazy-init=‘false‘那么容器启动就会执行调度程序   -->
  <bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
    <property name="triggers">
      <list>
        <ref bean="getqqmsgTrigger" /> 
      </list>
    </property>
  </bean>
</beans>

通过上面配置文件基本上可以看出最主要的执行任务类就是com.jiyuan.qqapp.task.busqq.GetQQMsgTask

要执行的方法是  deleteAttachments

这样就能够 在每天0点执行GetQQMsgTask的deleteAttachments方法了,是不是很简单

package com.jiyuan.qqapp.task.busqq;
import org.springframework.beans.factory.annotation.Autowired;
import com.jiyuan.qqapp.log.service.LogService;
 
/**
 * 获取企业QQ聊天记录任务
  * 名称: GetQQMsgTask.java
  * 描述: 
  * 类型: JAVA
  * 最近修改时间:2015-7-2 下午5:50:31
  * @since  2015-7-2
  * @author liaokn
 */
public class GetQQMsgTask {
 private LogService logService;
 
 public LogService getLogService() {
  return logService;
 }
 @Autowired
 public void setLogService(LogService logService) {
  this.logService = logService;
 }
 /**
  * 
  */
 public void deleteAttachments() {
  try {
   System.out.println("删除测试");
  } catch (Exception e) {
   e.printStackTrace();
  }
 }
 
}

使用到的JAR包

c3p0-0.9.1.1.jar

log4j-1.2.16.jar

quartz-2.2.1.jar

quartz-jobs-2.2.1.jar

slf4j-api-1.6.6.jar

slf4j-log4j12-1.6.6.jar

时间: 2024-11-05 21:55:20

SSH中 集成Quartz任务调度一 普通定时任务的相关文章

spring 中集成quartz定时器及quartz中cronExpression配置说明

 spring 中集成quartz: spring文件的配置: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http:/

SpringBoot 1.5.x 集成 Quartz 任务调度框架

Quartz 有分 内存方式 和 数据库方式 内存方式任务信息保存在内存中, 停机会丢失, 需手动重新执行, 数据库方式: 任务信息保存在数据库中, 重点是支持集群. 内存方式 RAMJobStore 和 数据库方式 JobStoreTX, RAMJobStore 适合单机, 不支持集群,  JobStoreTX 支持集群. 下面介绍的就是 JobStoreTX 数据库方式. 1. 添加主要的相关依赖, 其他依赖这里就不说了 <dependency> <groupId>org.qu

ssh中使用spring的集成quartz 开发定时任务

之前没有使用框架开发时对于开发定时任务都是 使用java的原声timer类,重写线程的run方法跑要执行的任务.刚刚换的新公司,项目使用ssh2,目前该项目中的定时任务的使用spirng集成的quartz工具,非常方便.好了,废话不多说,说一下开发过程. 首先,需要建一个资源配置xml文件,一般以quartz结尾.如我项目中的该文件名为:applicationContext-bms-sendxml-quartz.xml,别忘了在applicationContext.xml文件中导入该文件.app

Spring Boot集成quartz实现定时任务并支持切换任务数据源

org.quartz实现定时任务并自定义切换任务数据源 在工作中经常会需要使用到定时任务处理各种周期性的任务,org.quartz是处理此类定时任务的一个优秀框架.随着项目一点点推进,此时我们并不满足于任务仅仅是定时执行,我们还想要对任务进行更多的控制,随时能对任务进行人为干预,就需要对quartz有更深入的了解.而随着微服务的流行,项目中多数据源的情况也越来越常见,在定时任务中集成多数据源切换的功能也需要集成进来. 集成quartz实现定时任务 集成quartz实现定时任务 quartz中实现

Spring Boot 入门(九):集成Quartz定时任务

本片文章续<Spring Boot 入门(八):集成RabbitMQ消息队列>,关于Quartz定时任务请参考<Quartz的基本使用之入门(2.3.0版本)> spring boot实现定时任务,除了集成Quartz外,还可以直接使用scheduler注解.使用1个简单的注解就可以完成,为什么还要较为复杂的集成Quartz呢?这里我简单回答下这2中方式的区别,这也是我在项目中为什么要选择Quartz这种方式. 1.scheduler注解方式,一旦定时任务产生异常,那么此定时任务就

Spring 中使用Quartz实现任务调度

前言:Spring中使用Quartz 有两种方式,一种是继承特定的基类:org.springframework.scheduling.quartz.QuartzJobBean,另一种则不需要,(推荐使用第二种).下面分别介绍. 1.作业类继承 org.springframework.scheduling.quartz.QuartzJobBean 第一步:定义作业类 java代码 1 import java.text.SimpleDateFormat; 2 import java.util.Dat

.NET中Quartz任务调度器的简单应用实例

1.首先从NuGet中安装Quartz,安装最新版本就OK 2.新建一个Job类实现Quart中的IJob接口用于执行业务逻辑,代码如下: class CheckUpdateJob : IJob { public async Task Execute(IJobExecutionContext context) { //在此处实现业务 } } 3.新建一个任务执行类用于启动任务,代码如下: class JobController { //调度器 IScheduler scheduler; //调度

quartz任务调度学习一

1.实现定时任务的几种方式: crontab 命令 + sql语句 python脚本 + sql语句 spring + JDK Timer spring + Quartz 2.Quartz概述: Quartz是java领域中最著名的定时任务调度工具,具有以下特性: 强大的调度功能 灵活的应用方式 负载均衡 高可用特性 易于spring集成 3.基础概念: Quartz 任务调度的核心元素是 scheduler, trigger 和 job,其中 trigger 和 job 是任务调度的元数据,

Quartz学习总结(1)——Spring集成Quartz框架

一.Quartz简介 Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,它可以与J2EE与J2SE应用程序相结合也可以单独使用.Quartz可以用来创建简单或为运行十个,百个,甚至是好几万个Jobs这样复杂的程序.Jobs可以做成标准的Java组件或 EJBs.Quartz 是个开源的作业调度框架,为在 Java 应用程序中进行作业调度提供了简单却强大的机制.Quartz 允许开发人员根据时间间隔(或天)来调度作业.它实现了作业和触发器的多对多关系,