网上看到很多Quartz的帖子,说得都很不错,关于他的由来和原理我这里就不累赘了。我主要想解决的事情是一开始我遇到的无法自动启动的问题。
用例子说话。
一、写一个自定义的类,继承至Object就可以了。并且可以配合set方法,用于在spring中注入。
public class PoolingSendMail
{ public static Logger poolingSendMailLog = Logger.
getLogger(PoolingSendMail.
class);
private String message;
public void setMessage
(String message
) { this.
message = message;
} public void sendMail
() { System.
out.
println(message
);
}}
二、配置文件
在spring的配置文件中,增加下面的配置
<bean id="poolingSendMail" class="com.wtmec.RFQ.pooling.PoolingSendMail">
<property name="message">
<value>nihao</value>
</property>
</bean>
<bean id="poolingDetail"
class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject">
<ref bean="poolingSendMail"/>
</property>
<property name="targetMethod">
<value>setMessage</value>
</property>
</bean>
<bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail">
<ref bean="poolingDetail"/>
</property>
<property name="cronExpression">
<value>* 5 1 ? * MON-FRI</value>
</property>
</bean>
<bean id ="schedulerFactory" lazy-init="false" autowire="no"
class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref local="cronTrigger" />
</list>
</property>
<property name="autoStartup" value="true"/>
<property name="schedulerName" value="cronScheduler" />
</bean>
经过这样的简单配置就可以让程序在周一到周五的凌晨1点5分的某个时刻执行程序了。(当然这里只是简单的system.out动作而已)
刚开始的时候,一直困扰我的是我在启动tomcat后,无法自动启动定时任务。但是我如果在java中直接获取spring配置文件,并获取我“schedulerFactory” 是可以运行的。
后来问题终于找到。是刚开始的时候,我没有落了几个需要设置的地方
1. bean “schedulerFactory“ 的lazy-init="false”。
2. bean “schedulerFactory“ 的两个属性
<property name="autoStartup" value="true"/>
<property name="schedulerName" value="cronScheduler" />
完成上面的设置后,程序就可以自动启动了。yeah。give me five。。
注:在cronExpression部分,最好不要在秒的部分使用星号(*),这样似乎会在某一时刻内运行多次。我把它改成特定的描述就OK了。例如是:0
另外需要注意的是:如果你有多个项目使用quartz,这时候,需要把org.springframework.scheduling.quartz.SchedulerFactoryBean的schedulerName改成tomcat中唯一的名字。否则会有些项目的定时任务无法执行。
分享到:
相关推荐
Spring + quartz 定时任务修改定时时间不重启服务
在IT行业中,构建高效、可扩展的Web应用是至关重要的,而"spring+springMVC+mybatis+quartz动态定时任务创建"就是一个常见的技术栈,用于实现这样的目标。这个组合充分利用了各组件的优势,提供了强大的后端服务支持...
【Spring+Quartz定时任务最简集群版1】是一个基于Spring和Quartz的定时任务解决方案,用于在分布式环境中实现任务的自动调度。本项目作为Dubbo工程的一部分,它依赖于Dubbo的一些公共组件,同时也提供了将定时任务...
【Spring + Quartz 实现定时任务】 在Java应用开发中,定时任务是一项常用的功能,用于执行周期性的、计划性的工作,例如数据同步、日志清理、发送邮件等。Spring框架提供了与Quartz库集成的能力,使得我们可以方便...
Spring和Quartz是Java开发中常用的两个框架,它们在企业级应用中被广泛用于实现定时任务的管理和执行。Spring提供了一个轻量级的容器来管理Bean,而Quartz则是一个强大的作业调度库,能够帮助开发者定义和执行定时...
在 "spring+quartz定时小例子" 中,我们主要关注的是如何将这两个框架结合使用,创建一个可以执行定时任务的应用。这个例子包含了相关的框架包和文档,帮助开发者理解并实践这一整合过程。 1. **Spring 配置**: ...
本项目就是基于Spring MVC、Mybatis、Quartz和Swagger实现的一个定时任务管理系统,旨在提供一种灵活且可配置的方式来管理和控制定时任务。下面将详细讲解这个系统的核心组成部分及其工作原理。 首先,Spring MVC是...
Spring框架与Quartz库的结合为开发者提供了强大的定时任务管理能力,尤其在集群环境中,如何确保任务的正确性和一致性成为了一个关键问题。本篇将深入探讨"Spring+Quartz定时集群支持"这一主题。 首先,Spring是...
在Spring中整合Quartz,我们可以利用Spring的管理能力,如bean的生命周期管理和事务管理,来更方便地创建和管理定时任务。 **Spring+Quartz动态定时任务创建** 将Spring与Quartz结合,我们可以方便地在运行时动态...
commons-collections-3.2.2.jar commons-logging-1.2.jar jta-1.1.jar log4j-1.2.14.jar org.springframework....quartz-all-1.8.6.jar slf4j-api-1.5.8.jar slf4j-log4j12.jar 和spring的一些jar包 不一一列出了
"定时框架spring+quartz"的结合,就是将Quartz的定时功能与Spring的强大集成能力完美融合,为开发者提供了一种高效、灵活的定时任务解决方案。 Spring框架提供了多种方式来管理定时任务,包括使用Spring的`@...
整合 Spring 和 Quartz 可以让开发者更加灵活地管理和控制定时任务。以下是整合的基本步骤: 1. **配置Spring容器**:首先需要将 Quartz 的相关组件注册到 Spring 容器中。这一步主要是为了让 Spring 能够管理 ...
Spring框架结合Quartz库,提供了一种强大而灵活的方式来管理这些定时任务。本项目旨在演示如何利用Spring和Quartz从数据库中动态加载定时任务,并实现对它们的增删改查功能。以下是关于这个主题的详细知识讲解。 ...
本Demo以"基于SSM+quartz的定时任务管理"为主题,将展示如何在Spring、SpringMVC和MyBatis(SSM)框架基础上,集成Quartz作为调度引擎,实现高效灵活的定时任务管理。 **1. SSM框架简介** SSM是Spring、SpringMVC...
在"Spring2.5+Quartz定时任务简单例子web工程"中,我们可以看到这两个框架的结合使用,主要目标是实现基于 Web 应用的定时任务管理。以下将详细介绍这个项目中可能涉及的知识点: 1. **Spring 2.5**: - **依赖...
**Spring+Quartz定时调度详解** 在Java世界中,实现定时任务调度是非常常见的需求,Spring框架结合Quartz库提供了一种高效且灵活的解决方案。本文将深入探讨Spring与Quartz的整合,以及如何利用它们来创建和管理...
spring+quartz的定时任务,希望能帮到大家!
最近项目中使用了spring+Quartz定时任务、但是项目最近要集群部署、多个APP下如何利用Quartz 协调处理任务。 大家可以思考一下、现在有 A、B、C三个应用同时作为集群服务器对外统一提供服务、每个应用下各有一个...
java + quartz实现定时任务,实现集群配置,在集群环境下多节点运行定时Quartz定任务,就会存在重复处理任务的现象,为解决这一问题,下面我将介绍使用 Quartz 的 TASK ( 12 张表)实例化到数据库,基于数据库自动...