据说 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定时执行功能。 首先,我们需要引入Quartz和Spring的相关依赖。在Maven的pom.xml文件中添加以下依赖: ```xml <groupId>org.quartz-scheduler <artifactId>...
总结,通过以上步骤,我们就成功地在Spring 3中配置了Quartz定时任务,实现了每10秒执行一次的任务。在实际应用中,你可以根据需求定义更复杂的作业和触发器,以及使用Quartz的其他高级特性,如集群支持、持久化作业...
在Spring中整合Quartz,我们可以利用Spring的管理能力,如bean的生命周期管理和事务管理,来更方便地创建和管理定时任务。 **Spring+Quartz动态定时任务创建** 将Spring与Quartz结合,我们可以方便地在运行时动态...
标题中的“spring2.0 Quartz 执行每天定时任务 普通普是执行任务”涉及到的是在Spring 2.0框架中使用Quartz库来创建并执行每天定时任务的场景。Quartz是一款强大的开源作业调度框架,它可以用来按计划执行各种任务,...
在多应用服务器负载均衡环境下,Spring Quartz定时任务的重复执行问题是一个常见的挑战。Spring Quartz是一个强大的、开源的作业调度框架,允许开发者定义和执行复杂的定时任务。然而,当多个服务器实例并行运行时,...
基于Spring的Quartz动态定时任务增删改查,代码简洁。后端采用SpringMvc+Spring+Mybatis+Quartz,前端采用Bootstrap框架,数据库采用MySQL;完成定时任务动态任务初始化,增删改查
3. **定义Job**:创建一个实现了`org.quartz.Job`接口的类,这个类代表了需要定时执行的任务。例如,我们可以创建一个名为`MyJob`的类: ```java public class MyJob implements Job { @Override public void ...
1. **定义业务工作类**:首先,需要定义一个类来包含需要定时执行的方法。例如,这里定义了一个名为 `BusinessWork` 的类,其中包含了 `generateReport` 方法。 ```java public class BusinessWork { public ...
在 "spring+quartz定时小例子" 中,我们主要关注的是如何将这两个框架结合使用,创建一个可以执行定时任务的应用。这个例子包含了相关的框架包和文档,帮助开发者理解并实践这一整合过程。 1. **Spring 配置**: ...
下面将详细介绍如何使用Spring集成Quartz,以及解决定时任务重复执行的问题。 首先,让我们了解Spring如何配置Quartz。在Spring应用中添加Quartz支持,你需要在`pom.xml`或`build.gradle`文件中引入Quartz的依赖,...
在这个“quartz_springbatch_dynamic”项目中,我们将看到如何将这两个强大的工具结合起来,以实现动态集群环境中的定时任务执行,并使用MySQL作为数据存储。 Quartz是一个开源的作业调度框架,允许开发者创建、...
以下是对 "spring-quartz 定时设置详细说明" 的详细解释。 一、Quartz 简介 Quartz 是一个开源的作业调度框架,可以用来创建、调度和执行任务。它支持复杂的调度策略,如按时间间隔执行、在特定日期执行等。Quartz ...
在IT行业中,构建高效、可扩展的Web应用是至关重要的,而"spring+springMVC+mybatis+quartz动态定时任务创建"就是一个常见的技术栈,用于实现这样的目标。这个组合充分利用了各组件的优势,提供了强大的后端服务支持...
使用Spring Quartz执行定时任务
2. 配置Spring:在Spring的配置文件中,我们需要配置一个`SchedulerFactoryBean`,它将作为Quartz调度器的Spring Bean。可以通过`triggers`属性来添加触发器,`jobDetails`属性来添加作业。 3. 定义作业:创建一个...
2. **配置Quartz**:在Spring的配置文件(如`applicationContext.xml`)中定义Quartz的`SchedulerFactoryBean`,配置数据源、jobStore类型等参数。 3. **定义Job**:创建一个实现了`org.quartz.Job`接口的类,这是...
2. **从数据库中获取定时任务**:Quartz允许将任务和触发器的信息存储在数据库中,这可以通过实现`SchedulerFactoryBean`的`overwriteExistingJobs`属性为`false`来实现。这样,当Quartz启动时,它会从数据库中读取...
Spring整合Quartz 2.2.3是Java开发者在实现定时任务时常用的一种技术组合。Quartz是一款开源的作业调度框架,它允许程序在特定时间执行预定的任务,而Spring则是一个强大的企业级应用开发框架,提供了丰富的依赖注入...