spring集成quartz实现定时任务

定时器jar引入

<dependency>
    <groupId>org.quartz-scheduler</groupId>
    <artifactId>quartz</artifactId>
    <version>2.3.0</version>
</dependency>

spring配置quartz的xml

<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-3.2.xsd">

     <bean name="thirdCron" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
        <property name="targetObject">            <!-- 指向执行任务的类的路径-->
             <bean class="com.wyn.quartz.CleanZndzJob"/>
        </property>      <!-- 指向执行任务的类的的执行方法-->
         <property name="targetMethod" value="executeCleanJob"/>
         <!--作业不并发调度-->
         <property name="concurrent" value="false"/>
     </bean>

     <!--按照一定频率的触发器-->
<!--      <bean id="simpleTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerFactoryBean"> -->
<!--          <property name="jobDetail" ref="thirdCron"/> -->
<!--          调度工厂实例化后,经过0秒开始执行调度 -->
<!--          <property name="startDelay" value="0"/> -->
<!--          每2秒调度一次 -->
<!--          <property name="repeatInterval" value="2000"/> -->
<!--      </bean> -->

     <!--Cron表达式触发器-->
     <bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
         <property name="jobDetail" ref="thirdCron"/>
         <!-- 30分钟执行一次 -->
<!--          <property name="cronExpression" value="0 */30 * * * ?"/> -->
          <property name="cronExpression">
            <!--每隔30分钟执行一次 -->
            <value>0 */30 * * * ?</value>
            <!--每隔3秒执行一次 -->
<!--             <value>*/3 * * * * ?</value> -->
        </property>
     </bean>

     <!--配置调度工厂-->
     <bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
         <property name="triggers">
             <list>
                 <!--<ref bean="simpleTrigger"/>-->
                 <ref bean="cronTrigger"/>
             </list>
         </property>
     </bean>
</beans>

定时任务的类

package com.wondersgroup.moduls.aidaozhen.quartz;

import org.apache.log4j.LogManager;
import org.apache.log4j.Logger;

import com.wondersgroup.moduls.aidaozhen.service.impl.ZndzServiceImpl;

public class CleanZndzJob {

	 private static final Logger logger = LogManager.getLogger(CleanZndzJob.class);
     public void executeCleanJob() {

    	 logger.info("定期清理数据。。。。。");
     }
}

原文地址:https://www.cnblogs.com/wangyanei2017/p/9586144.html

时间: 2024-10-08 02:50:44

spring集成quartz实现定时任务的相关文章

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集成quartz

spring集成quartz 注意:出现异常"Caused by: java.lang.IncompatibleClassChangeError: class org.springframework.scheduling.quartz.CronTriggerBean has interface org.quartz.CronTrigger as super class" Spring3.0不支持Quartz2.0,因为org.quartz.CronTrigger在2.0从class变成

Spring集成Quartz定时器

<!-- Spring集成Quartz开始 --> <bean id="startQuertz" lazy-init="false" autowire="no" class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> <property name="triggers"> <list>

使用Spring集成Quartz

Quartz: Quartz调度包的两个基本单元是作业(Job)和触发器(Trigger).作业是能够调度的可执行任务,触发器提供了对作业的调度.虽然这两个实体很容易合在一起,但在Quartz中将它们分离开来是有原因的,而且也很有益处.通过把要执行的工作与它的调度分开,Quartz允许在不丢失作业本身或作业的上下文的情况下,修改调度触发器.而且,任何单个的作业都可以有多个触发器与其关联 使用Spring集成Quartz: 本系统使用Spring来集成Quartz.我们只需要在Spring中配置相

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

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

Spring整合quartz实现定时任务

quartz比timer的功能更强大,结合spring可以简化quartz的配置来实现定时任务. 1 导入包:quartz-all.jar 2 创建定时执行的任务类(类名可以是普通类名): package com.web.quartz; import java.text.SimpleDateFormat; import java.util.Date; public class Task { public void execute(){ String now=new SimpleDateForma

【spring-boot】 springboot集成quartz实现定时任务

在做项目时有时候会有定时器任务的功能,比如某某时间应该做什么,多少秒应该怎么样之类的. spring支持多种定时任务的实现.我们来介绍下使用spring的定时器和使用quartz定时器 1.我们使用spring-boot作为基础框架,其理念为零配置文件,所有的配置都是基于注解和暴露bean的方式. 2.使用spring的定时器: spring自带支持定时器的任务实现.其可通过简单配置来使用到简单的定时任务. @Component @Configurable @EnableScheduling p

Spring集成Quartz的3种方式

1.使用xml配置方式 Maven依赖 <properties> <!-- spring版本号 --> <spring.version>4.2.2.RELEASE</spring.version> <!-- Quartz的版本 --> </properties> <dependency> <groupId>org.springframework</groupId> <artifactId>