`

Spring quartz实例

 
阅读更多

 目的:

       写两个任务,分别是TestJob和TestJob2。TestJob每个10秒钟打印一行文字到控制台,TestJob2每个一分钟打印一行文字到控制台。

 

搭建环境:

       用MyEclipase或Eclipase创建一个Java Project。在项目下创建lib目录,放入必要的Spring的jar文件。结构如下图:

 

任务Java代码:

package com.test;

/**
 * 任务一
 * 
 * @author 530
 * 
 */
public class TestJob {
	private static int count = 1;

	/**
	 * 任务方法
	 */
	public void work() {
		System.out.println("TestJob " + count++);
	}
}

 

package com.test;

/**
 * 任务二
 * 
 * @author 530
 * 
 */
public class TestJob2 {
	private static int count = 1;

	/**
	 * 任务方法
	 */
	public void runJob() {
		System.out.println("TestJob2 " + count++);
	}
}

 

配置文件:

<?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.5.xsd">
	
	<!-- 将要调用的工作类的Bean -->
	<bean id="test" class="com.test.TestJob"/>
	<bean id="test2" class="com.test.TestJob2"/>
	
	
	<!-- 将调用对象和调用对象的方法定义成一个任务 -->
	<bean id="jobtask" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
		<!-- 调用的类 -->
		<property name="targetObject" ref="test"/>
		<!-- 调用类中的方法 -->
		<property name="targetMethod" value="work"/>
	</bean>
	<bean id="jobtask2" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
		<property name="targetObject" ref="test2"/>
		<property name="targetMethod" value="runJob"/>
	</bean>
	
	
	<!-- 定义每个任务的触发时间 -->
	<bean id="doTime" class="org.springframework.scheduling.quartz.CronTriggerBean">
		<property name="jobDetail" ref="jobtask"/>
		<!-- cron表达式 -->
	    <property name="cronExpression">
	    	<!-- 每隔10秒钟调用一次 -->
	        <value>0/10 * * * * ?</value>
	    </property>
	</bean>
	<bean id="doTime2" class="org.springframework.scheduling.quartz.CronTriggerBean">
		<property name="jobDetail" ref="jobtask2"/>
	    <property name="cronExpression">
	    	<!-- 每隔1分钟调用一次 -->
	        <value>0 0/1 * * * ?</value>
	    </property>
	</bean>
	
	<!-- 总管理类,管理所有的定时任务,如果将lazy-init='false'那么容器启动就会执行调度程序 -->	
	<bean id="startQuertz" lazy-init="false" autowire="no" 
		class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
	    <property name="triggers">
	        <list>
	            <ref bean="doTime"/>
	            <ref bean="doTime2"/>
	        </list>
	    </property>
	</bean>
	
</beans>

 

测试

package com.test;


import org.springframework.context.support.ClassPathXmlApplicationContext;

public class TMain {
	public static void main(String[] args) {
		System.out.println("Test start.");
		new ClassPathXmlApplicationContext("applicationContext.xml");
		// 如果配置文件中将startQuertz bean的lazy-init设置为false 则不用实例化
		// context.getBean("startQuertz");
		System.out.print("Test end..\n");
	}
}

 

 

  • 大小: 87.5 KB
分享到:
评论

相关推荐

    spring的quartz使用实例

    以下是对Spring整合Quartz使用实例的详细说明: 1. **Quartz简介** Quartz是一个强大的、完全开源的作业调度框架,它支持复杂的调度策略,如按日期、时间间隔或自定义表达式执行。Quartz可以在Java应用中作为独立...

    SpringQuartz实例

    开发spring quartz 实例,包括多个job任务,同时附带截止目前最新最全的开发jar,包括commons-collections,commons-logging-1.1.1,quartz-1.7.3,spring-2.5.6,spring-context-3.0.6.RELEASE-sources,spring-webmvc-...

    spring-quartz简单实例

    在这个"spring-quartz简单实例"中,我们将探讨如何在Spring环境下配置和使用Quartz。 首先,我们需要引入Quartz和Spring的依赖。在Maven项目中,这通常通过在pom.xml文件中添加以下依赖来完成: ```xml ...

    Spring Quartz 任务调度实例

    Spring Quartz实例提供了灵活的任务调度能力,适用于各种业务场景,如定期数据同步、定时发送邮件等。通过上述步骤,你可以创建自己的定时任务,并根据项目需求调整触发策略。这个实例包含了完整的配置和示例代码,...

    SpringQuartz的使用文档

    SpringQuartz是一个强大的任务调度框架,它在Java应用程序中用于自动化执行特定任务,如定时生成文件、统计数据或执行后台清理工作。Quartz是开源的,具有高度灵活的调度功能,能够根据预定义的时间表触发任务,同时...

    Spring quartz 定时 实例

    在上述实例中,我们看到如何配置和使用Spring Quartz来创建一个简单的定时任务。主要涉及以下几个关键点: 1. **依赖引入**:首先,我们需要引入必要的库,包括quartz.jar(Quartz核心库),spring.jar(Spring核心...

    spring Quartz的jar包

    1. **配置**:在Spring应用上下文配置文件中,你需要声明一个SchedulerFactoryBean实例,它是Quartz调度器的Spring bean。通过设置相关的属性,如jobStoreType(用于持久化Job状态的存储类型)、triggers(定义任务...

    Spring + Quartz配置实例(转载)

    标题 "Spring + Quartz配置实例(转载)" 暗示了我们将讨论如何在Java环境中整合Spring框架与Quartz作业调度库的使用。Quartz是一个开源的作业调度库,它允许开发者安排任务以在特定时间执行,而Spring框架则是一个...

    spring-quartz定时任务小实例

    本实例将探讨如何在Spring框架中集成Quartz,创建并运行一个简单的定时任务。以下是你需要知道的关键知识点: 1. **Quartz简介**:Quartz是开源的作业调度库,可以用来创建、调度和执行计划任务。它支持cron表达式...

    Spring Quartz 定时器示例(Web工程版)

    Spring Quartz 定时器示例(Web工程版),欢迎下载。

    spring quartz类全包spring quartz类全包spring quartz类全包

    Spring Quartz 是一个强大的任务调度框架,它允许开发者在Spring应用中灵活地定义和执行定时任务。Quartz本身是一个独立的Java库,而Spring通过集成Quartz,提供了更方便的管理和配置方式,使得在Spring应用中使用...

    spring quartz定时任务demo

    本文将详细解析“spring quartz定时任务demo”这个项目,它提供了实现Java定时任务的实例,便于快速理解和应用。 首先,Quartz是一个开源的作业调度框架,支持复杂的调度策略,可以创建、调度和执行重复或一次性...

    spring+quartz demo

    Spring 提供了与 Quartz 集成的模块,使得在 Spring 应用程序中使用 Quartz 更加便捷,包括 Job 实例的管理、触发器的配置以及对 Quartz Scheduler 的控制。 在这个 "spring+quartz demo" 中,我们可以学习到如何将...

    springQuartz.zip

    2. **Spring与Quartz的集成**:Spring 提供了对Quartz的整合,使得我们可以利用Spring的IOC(控制反转)来管理Scheduler实例,以及Job和Trigger。这使得任务的创建和管理变得更加灵活和方便。 3. **配置定时任务**...

    Spring Quartz Demo

    Spring Quartz Demo 是一个用于演示如何在Spring框架中集成Quartz调度器的实例。这个项目展示了如何配置Spring来管理和执行定时任务,利用Quartz的强大功能来实现应用程序的自动化作业调度。 **Spring与Quartz的...

    spring quartz

    在Spring中,我们可以使用`SchedulerFactoryBean`来创建和管理Scheduler实例。 4. **JobDetail**:JobDetail存储了Job的详细信息,如Job类、组名和相关的数据。它并不直接触发Job的执行,而是与Trigger一起工作,...

    Spring Quartz1.8.x

    8. **扩展性**:Spring Quartz允许自定义JobFactory和TriggerFactory,以便在创建Job实例和Trigger时添加自定义逻辑,增强了框架的灵活性。 9. **Spring Boot集成**:如果你使用的是Spring Boot,那么Spring Boot...

    完美解决多应用服务器负载均衡环境下spring quartz同一定时任务重复执行问题

    7. **Spring整合**:在Spring中配置Quartz,通过`SchedulerFactoryBean`来创建和管理Scheduler实例。通过`@DisallowConcurrentExecution`注解可以防止同一任务在单个实例中并发执行,但这个注解并不适用于集群环境。...

    spring-quartz jar包

    2. **集成优势**:Spring的依赖注入可以注入到Quartz Job中,使得Job实例可以利用Spring容器中的其他服务。 3. **任务管理**:可以轻松地暂停、恢复、删除和更新已存在的任务。 4. **集群支持**:Quartz支持在多台...

    quartz和spring-quartz

    1. **Bean集成**: Spring可以自动将Job实例作为Spring Bean管理,这样你就可以利用Spring的特性,如AOP、事务管理等。 2. **XML配置**: 在Spring的配置文件中,你可以声明Job和Trigger,然后通过...

Global site tag (gtag.js) - Google Analytics