`
Colin_Davis
  • 浏览: 25114 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

spring4 quartz2 定时执行

    博客分类:
  • Java
 
阅读更多

    据说 quartz 2 以下的与 2.* 版本的配置不一样, 在此就忽略了, 反正我又不去用, 哈哈

 

		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-webmvc</artifactId>
			<version>4.1.6.RELEASE</version>
			<scope>runtime</scope>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-orm</artifactId>
			<version>4.1.6.RELEASE</version>
			<scope>runtime</scope>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-context-support</artifactId>
			<version>4.1.6.RELEASE</version>
			<scope>runtime</scope>
		</dependency>
		<dependency>
			<groupId>org.apache.servicemix.bundles</groupId>
			<artifactId>org.apache.servicemix.bundles.spring-context-support</artifactId>
			<version>4.0.7.RELEASE_3</version>
			<scope>runtime</scope>
		</dependency>
		<dependency>
			<groupId>org.quartz-scheduler</groupId>
			<artifactId>quartz</artifactId>
			<version>2.1.7</version>
			<scope>runtime</scope>
		</dependency>

 

    

	<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
		<property name="autoStartup" value="true" />
		<property name="triggers">
			<list>
				<ref bean="appSchedulerTrigger" />
			</list>
		</property>
	</bean>

	<!-- http://www.oschina.net/question/8676_9032 -->
	<!-- http://my.oschina.net/jeffli1993/blog/265785 -->
	<!-- http://www.quartz-scheduler.org/ -->
	<!-- 定时触发器 -->
	<bean id="appSchedulerTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
		<!-- 表达式的格式:秒 分 时 日 月 周 年(可选) -->
		<!-- 每天 23 点执行一次 -->
		<!-- <property name="cronExpression" value="0 0 23 * * ?" /> -->
		<!-- 每隔 1 小时执行一次, 之前的 秒 与 分 必需设置为 0 , 不然会执行 60minutes X 60seconds = 3600 次的, 别问我是怎么知道的 -->
		<property name="cronExpression" value="0 0 */1 * * ?" />
		<property name="jobDetail" ref="appJobDetail" />
	</bean>

	<bean id="appJobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
		<!-- 是否允许任务并发执行 当值为false时 表示必须等到前一个线程处理完毕后才再启一个新的线程 -->
		<property name="concurrent" value="false" />
		<property name="targetObject" ref="syncIMUserJob" />
		<property name="targetMethod" value="doSync" />
	</bean>

	<!-- 同步 IM User 任务 -->
	<bean id="syncIMUserJob" class="***.quartz.job.SyncIMUserJob" />

 

    SyncIMUserJob 就是一个普通的 java 类

/**
 * 
 */
package ***.quartz.job;

/**
 * @author Colin
 *
 */
public class SyncIMUserJob {

	private Logger logger;

	/**
	 * 
	 */
	public SyncIMUserJob() {
		logger = Logger.getLogger( SyncIMUserJob.class );
	}

	public void doSync() {

		StackTraceElement trace = Thread.currentThread().getStackTrace()[ 1 ];
		logger.info( "log4j " + " --- " + trace.getClassName() + " - " + trace.getMethodName() );

	}

}

 

 

    日志开启到 trace 级别后看到 SchedulerFactoryBean  每隔 几秒 会去触发  triggers  中对应的 触发器, 然后 triggers 会根据定义的触发规则 cronExpression 去通过 MethodInvokingJobDetailFactoryBean 反射生成 targetObject  的 targetMethod 的 Method 对象, 并调用执行.   

分享到:
评论

相关推荐

    spring注解Quartz定时执行功能

    下面我们将深入探讨如何利用Spring注解实现Quartz定时执行功能。 首先,我们需要引入Quartz和Spring的相关依赖。在Maven的pom.xml文件中添加以下依赖: ```xml &lt;groupId&gt;org.quartz-scheduler &lt;artifactId&gt;...

    spring3配置quartz定时任务

    总结,通过以上步骤,我们就成功地在Spring 3中配置了Quartz定时任务,实现了每10秒执行一次的任务。在实际应用中,你可以根据需求定义更复杂的作业和触发器,以及使用Quartz的其他高级特性,如集群支持、持久化作业...

    spring+quartz动态定时任务创建 +mybatis

    在Spring中整合Quartz,我们可以利用Spring的管理能力,如bean的生命周期管理和事务管理,来更方便地创建和管理定时任务。 **Spring+Quartz动态定时任务创建** 将Spring与Quartz结合,我们可以方便地在运行时动态...

    spring2.0 Quartz 执行每天定时任务 普通普是执行任务

    标题中的“spring2.0 Quartz 执行每天定时任务 普通普是执行任务”涉及到的是在Spring 2.0框架中使用Quartz库来创建并执行每天定时任务的场景。Quartz是一款强大的开源作业调度框架,它可以用来按计划执行各种任务,...

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

    在多应用服务器负载均衡环境下,Spring Quartz定时任务的重复执行问题是一个常见的挑战。Spring Quartz是一个强大的、开源的作业调度框架,允许开发者定义和执行复杂的定时任务。然而,当多个服务器实例并行运行时,...

    基于Spring的Quartz动态定时任务增删改查

    基于Spring的Quartz动态定时任务增删改查,代码简洁。后端采用SpringMvc+Spring+Mybatis+Quartz,前端采用Bootstrap框架,数据库采用MySQL;完成定时任务动态任务初始化,增删改查

    spring整合quartz定时任务调度

    3. **定义Job**:创建一个实现了`org.quartz.Job`接口的类,这个类代表了需要定时执行的任务。例如,我们可以创建一个名为`MyJob`的类: ```java public class MyJob implements Job { @Override public void ...

    spring结合quartz的定时的2种方式

    1. **定义业务工作类**:首先,需要定义一个类来包含需要定时执行的方法。例如,这里定义了一个名为 `BusinessWork` 的类,其中包含了 `generateReport` 方法。 ```java public class BusinessWork { public ...

    spring+quartz定时小例子

    在 "spring+quartz定时小例子" 中,我们主要关注的是如何将这两个框架结合使用,创建一个可以执行定时任务的应用。这个例子包含了相关的框架包和文档,帮助开发者理解并实践这一整合过程。 1. **Spring 配置**: ...

    spring java 定时器 执行两次 quartz

    下面将详细介绍如何使用Spring集成Quartz,以及解决定时任务重复执行的问题。 首先,让我们了解Spring如何配置Quartz。在Spring应用中添加Quartz支持,你需要在`pom.xml`或`build.gradle`文件中引入Quartz的依赖,...

    quartz整合springbatch动态集群定时实现mysql参考

    在这个“quartz_springbatch_dynamic”项目中,我们将看到如何将这两个强大的工具结合起来,以实现动态集群环境中的定时任务执行,并使用MySQL作为数据存储。 Quartz是一个开源的作业调度框架,允许开发者创建、...

    spring-quartz定时设置详细说明

    以下是对 "spring-quartz 定时设置详细说明" 的详细解释。 一、Quartz 简介 Quartz 是一个开源的作业调度框架,可以用来创建、调度和执行任务。它支持复杂的调度策略,如按时间间隔执行、在特定日期执行等。Quartz ...

    spring+springMVC+mybatis+quartz动态定时任务创建

    在IT行业中,构建高效、可扩展的Web应用是至关重要的,而"spring+springMVC+mybatis+quartz动态定时任务创建"就是一个常见的技术栈,用于实现这样的目标。这个组合充分利用了各组件的优势,提供了强大的后端服务支持...

    Spring Quartz执行定时任务.

    使用Spring Quartz执行定时任务

    spring_quartz_定时任务

    2. 配置Spring:在Spring的配置文件中,我们需要配置一个`SchedulerFactoryBean`,它将作为Quartz调度器的Spring Bean。可以通过`triggers`属性来添加触发器,`jobDetails`属性来添加作业。 3. 定义作业:创建一个...

    spring整合quartz动态定时任务demo-spring-quartz-demo.zip

    2. **配置Quartz**:在Spring的配置文件(如`applicationContext.xml`)中定义Quartz的`SchedulerFactoryBean`,配置数据源、jobStore类型等参数。 3. **定义Job**:创建一个实现了`org.quartz.Job`接口的类,这是...

    Spring+Quartz 从数据库中获取定时任务和定时时间,动态实现对定时任务的增删改查

    2. **从数据库中获取定时任务**:Quartz允许将任务和触发器的信息存储在数据库中,这可以通过实现`SchedulerFactoryBean`的`overwriteExistingJobs`属性为`false`来实现。这样,当Quartz启动时,它会从数据库中读取...

    Spring整合quartz2.2.3总结,quartz动态定时任务,Quartz定时任务集群配置

    Spring整合Quartz 2.2.3是Java开发者在实现定时任务时常用的一种技术组合。Quartz是一款开源的作业调度框架,它允许程序在特定时间执行预定的任务,而Spring则是一个强大的企业级应用开发框架,提供了丰富的依赖注入...

Global site tag (gtag.js) - Google Analytics