Spring集成Quartz定时任务

1.导入jar包

2.配置applicationContext.xml文件

<!-- 任务调度1 -->
	<!-- bean id="simpleJob" class="com.shprj.quartz.SimpleJob"></bean>
	<bean id="simpleJobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
		<property name="targetObject" ref="simpleJob"></property>
		<property name="targetMethod" value="showTime"></property>
	</bean>
	<bean id="simpleTrigger"  class="org.springframework.scheduling.quartz.SimpleTriggerFactoryBean">
        <property name="jobDetail" ref="simpleJobDetail" />
        <property name="startDelay" value="1000" />
        <property name="repeatInterval" value="2000" />
    </bean>
    <bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
    	<property name="jobDetails">
    		<list>
    			<ref bean="simpleJobDetail"/>
    		</list>
    	</property>
    	<property name="triggers">
    		<list>
    			<ref bean="simpleTrigger"/>
    		</list>
    	</property>
    </bean-->
    <!-- 任务调度2 -->
    <!-- bean id="firstJobDetail" class="org.springframework.scheduling.quartz.JobDetailFactoryBean">
    	<property name="jobClass" value="com.shprj.quartz.FirstJobDetail"></property>
    </bean>
    <bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
        <property name="jobDetail" ref="firstJobDetail" />
        <property name="cronExpression" value="0/5 * * ? * *" />
    </bean>
    <bean  class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
    	<property name="triggers">
    		<list>
    			<ref bean="cronTrigger"/>
    		</list>
    	</property>
    </bean-->
    <!-- 任务调度3 注解 -->
    <task:annotation-driven />

一共三种配置方法

1.

applicationContext.xml:

//simpleJob指定任务操作
< bean id="simpleJob" class="com.shprj.quartz.SimpleJob"></bean>
	<bean id="simpleJobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
		<property name="targetObject" ref="simpleJob"></property>
		<property name="targetMethod" value="showTime"></property>
	</bean>
	<bean id="simpleTrigger"  class="org.springframework.scheduling.quartz.SimpleTriggerFactoryBean">
        <property name="jobDetail" ref="simpleJobDetail" />
        <property name="startDelay" value="1000" />开始时间
        <property name="repeatInterval" value="2000" />间隔时间
    </bean>
    <bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
    	<property name="jobDetails">
    		<list>
    			<ref bean="simpleJobDetail"/>
    		</list>
    	</property>
    	<property name="triggers">
    		<list>
    			<ref bean="simpleTrigger"/>
    		</list>
    	</property>
    </bean>

simpleJob.java:

package com.shprj.quartz;

import java.util.Date;

public class SimpleJob {

	public void showTime(){
		System.out.println("简单任务1:"+new Date().toLocaleString());
	}

}

Tomcat启动就会自动执行

2.

applicationContext.xml:

<bean id="firstJobDetail" class="org.springframework.scheduling.quartz.JobDetailFactoryBean">
        <property name="jobClass" value="com.quartz.FirstJobDetail"></property>
    </bean>
    <bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
        <property name="jobDetail" ref="firstJobDetail" />
        <property name="cronExpression" value="0 0 20 * * ?" />这里写cron表达式
    </bean>
    <bean  class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
        <property name="triggers">
            <list>
                <ref bean="cronTrigger"/>
            </list>
        </property>
    </bean>

firstJobDetail.java:

package com.quartz;

import java.util.Date;

import com.dao.PianoRecordDao;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.springframework.scheduling.quartz.QuartzJobBean;

public class FirstJobDetail extends QuartzJobBean {

	@Override
	protected void executeInternal(JobExecutionContext arg0) throws JobExecutionException {
		PianoRecordDao pianoRecordDao = new PianoRecordDao();
		int i = pianoRecordDao.insert();
		System.out.println("Quartz任务执行!");

	}

}

Tomcat启动自动执行

3.没看,,以后写

参考:https://blog.csdn.net/noaman_wgs/article/details/80984873

原文地址:https://www.cnblogs.com/charlottepl/p/12608065.html

时间: 2024-11-02 00:47:18

Spring集成Quartz定时任务的相关文章

(2)Spring集成Quartz定时任务框架介绍和Cron表达式详解

在JavaEE系统中,我们会经常用到定时任务,比如每天凌晨生成前天报表,每一小时生成汇总数据等等.我们可以使用java.util.Timer结合java.util.TimerTask来完成这项工作,但时调度控制非常不方便,并且我们需要大量的代码.使用Quartz框架无疑是非常好的选择,并且与Spring可以非常方便的集成,下面介绍它们集成方法和Cron表达式的详细介绍. 一.增加所依赖的JAR包1.增加Spring的Maven依赖 <dependency> <groupId>org

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中配置相

Spring整合Quartz定时任务 在集群、分布式系统中的应用(Mysql数据库环境)

Spring整合Quartz定时任务 在集群.分布式系统中的应用(Mysql数据库环境) 转载:http://www.cnblogs.com/jiafuwei/p/6145280.html 单个Quartz实例能给予你很好的Job调度能力,但它不能满足典型的企业需求,如可伸缩性.高可靠性满足.假如你需要故障转移的能力并能运行日益增多的 Job,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实现定时任务

定时器jar引入 <dependency>    <groupId>org.quartz-scheduler</groupId>    <artifactId>quartz</artifactId>    <version>2.3.0</version></dependency> spring配置quartz的xml <beans xmlns="http://www.springframewor

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

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

Spring集成Quartz的3种方式

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