`
pokerwen
  • 浏览: 62777 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

spring + Quartz 定时任务

阅读更多

网上看到很多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.SchedulerFactoryBeanschedulerName改成tomcat中唯一的名字。否则会有些项目的定时任务无法执行。

分享到:
评论

相关推荐

    Spring + quartz 定时任务修改定时时间不重启服务

    Spring + quartz 定时任务修改定时时间不重启服务

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

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

    11-Spring+Quartz定时任务最简集群版1

    【Spring+Quartz定时任务最简集群版1】是一个基于Spring和Quartz的定时任务解决方案,用于在分布式环境中实现任务的自动调度。本项目作为Dubbo工程的一部分,它依赖于Dubbo的一些公共组件,同时也提供了将定时任务...

    spring+quartz定时任务

    【Spring + Quartz 实现定时任务】 在Java应用开发中,定时任务是一项常用的功能,用于执行周期性的、计划性的工作,例如数据同步、日志清理、发送邮件等。Spring框架提供了与Quartz库集成的能力,使得我们可以方便...

    Spring+Quartz定时任务学习文档+实例+jar包

    Spring和Quartz是Java开发中常用的两个框架,它们在企业级应用中被广泛用于实现定时任务的管理和执行。Spring提供了一个轻量级的容器来管理Bean,而Quartz则是一个强大的作业调度库,能够帮助开发者定义和执行定时...

    spring+quartz定时小例子

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

    Spring mvc + Mybatis + quartz + swagger 定时任务管理[新增、编辑、删除、修改]

    本项目就是基于Spring MVC、Mybatis、Quartz和Swagger实现的一个定时任务管理系统,旨在提供一种灵活且可配置的方式来管理和控制定时任务。下面将详细讲解这个系统的核心组成部分及其工作原理。 首先,Spring MVC是...

    spring+quartz定时集群支持

    Spring框架与Quartz库的结合为开发者提供了强大的定时任务管理能力,尤其在集群环境中,如何确保任务的正确性和一致性成为了一个关键问题。本篇将深入探讨"Spring+Quartz定时集群支持"这一主题。 首先,Spring是...

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

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

    spring+Quartz定时任务jar包

    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

    "定时框架spring+quartz"的结合,就是将Quartz的定时功能与Spring的强大集成能力完美融合,为开发者提供了一种高效、灵活的定时任务解决方案。 Spring框架提供了多种方式来管理定时任务,包括使用Spring的`@...

    spring+quartz 动态任务方案

    整合 Spring 和 Quartz 可以让开发者更加灵活地管理和控制定时任务。以下是整合的基本步骤: 1. **配置Spring容器**:首先需要将 Quartz 的相关组件注册到 Spring 容器中。这一步主要是为了让 Spring 能够管理 ...

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

    Spring框架结合Quartz库,提供了一种强大而灵活的方式来管理这些定时任务。本项目旨在演示如何利用Spring和Quartz从数据库中动态加载定时任务,并实现对它们的增删改查功能。以下是关于这个主题的详细知识讲解。 ...

    基于SSM+quartz的定时任务管理demo

    本Demo以"基于SSM+quartz的定时任务管理"为主题,将展示如何在Spring、SpringMVC和MyBatis(SSM)框架基础上,集成Quartz作为调度引擎,实现高效灵活的定时任务管理。 **1. SSM框架简介** SSM是Spring、SpringMVC...

    Spring2.5+Quartz定时任务简单例子web工程

    在"Spring2.5+Quartz定时任务简单例子web工程"中,我们可以看到这两个框架的结合使用,主要目标是实现基于 Web 应用的定时任务管理。以下将详细介绍这个项目中可能涉及的知识点: 1. **Spring 2.5**: - **依赖...

    Spring+Quartz定时调度

    **Spring+Quartz定时调度详解** 在Java世界中,实现定时任务调度是非常常见的需求,Spring框架结合Quartz库提供了一种高效且灵活的解决方案。本文将深入探讨Spring与Quartz的整合,以及如何利用它们来创建和管理...

    spring+quartz的定时任务

    spring+quartz的定时任务,希望能帮到大家!

    Spring+Quartz集群部署案例

    最近项目中使用了spring+Quartz定时任务、但是项目最近要集群部署、多个APP下如何利用Quartz 协调处理任务。 大家可以思考一下、现在有 A、B、C三个应用同时作为集群服务器对外统一提供服务、每个应用下各有一个...

    spring + quartz 集群配置

    java + quartz实现定时任务,实现集群配置,在集群环境下多节点运行定时Quartz定任务,就会存在重复处理任务的现象,为解决这一问题,下面我将介绍使用 Quartz 的 TASK ( 12 张表)实例化到数据库,基于数据库自动...

Global site tag (gtag.js) - Google Analytics