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

Spring 定时任务功能

阅读更多

1:需要的jar包:
       Spring的包自然不必说了;
       quartz.jar;
       jta.jar;
       commons-collections.jar;
       这里Spring用到了Quartz, 它是一个开源的作业调度框架,它完全由Java写成,并设计用于J2SE和J2EE应用中。它提供了巨大的灵活性而不牺牲简单性。你能够用它来为执行一个作业而创建简单的或复杂的调度。
2:创建任务类(就是一个普通的JAVA BEAN):例如:
public class TestTimerTask {
    public void execute(){
        System.out.println("开始后台用户资料预处理......");
    }
}
通常定时任务都是后台处理业务,这个类里的方法就是我们想让它定时执行的;
3:spring里的配置如下示例代码:
     <bean id="TimerTask"
         class="com.spr.spring.bean.TestTimerTask"/><!—这里就是上面定义的BEAN-->
     <bean id="scheduledInfo"
         class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
         <property name="targetObject">
              <ref bean="TimerTask"/>
         </property>
         <property name="targetMethod"><!—这里定义要调用的方法-->
              <value>execute</value>
         </property>
     </bean>
     <bean id="cronInfoTrigger"
         class="org.springframework.scheduling.quartz.CronTriggerBean">
         <property name="jobDetail">
              <ref bean="scheduledInfo"/>
         </property>
         <property name="cronExpression">
              <value>0 * * * *  </value>    
              <!—以上的说明见附录 这里是每分钟的0秒时执行操作-->
         </property>
     </bean>
     <bean autowire="no"
         class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
         <property name="triggers">
              <list>
                   <ref bean="cronInfoTrigger"/>
              </list>
         </property>
     </bean>
需要说明的是最后一个BEAN是管理这些触发器的总设置,他管理我们的触发器列表。一定要把autowire设置为no。“cronInfoTrigger”这是一个触发器的bean的设置,里面的cronExpression就是定义什么时候执行触发的,语法比较不好理解。
4:一般的SPRING项目都要在web.xml里设置如下内容:
       <context-param>
         <param-name>contextConfigLocation</param-name>
         <param-value>/WEB-INF/classes/applicationContext.xml</param-value>
     </context-param>
     <!-- servlet>
         <servlet-name>context</servlet-name>
         <servlet-class>
              org.springframework.web.context.ContextLoaderServlet
         </servlet-class>
         <load-on-startup>1</load-on-startup>
     </servlet-->
     <listener>
         <listener-class>
              org.springframework.web.context.ContextLoaderListener
     </listener-class>
     </listener>


*******************************************************************************

一个cron表达式有至少6个(也可能是7个)由空格分隔的时间元素。从左至右,这些元素的定义如下:

1.秒(0–59)

2.分钟(0–59)

3.小时(0–23)

4.月份中的日期(1–31)

5.月份(1–12或JAN–DEC)

6.星期中的日期(1–7或SUN–SAT)

7.年份(1970–2099)

每一个元素都可以显式地规定一个值(如6),一个区间(如9-12),一个列表(如9,11,13)或一个通配符(如*)。“月份中的日期”和“星期中的日期”这两个元素是互斥的,因此应该通过设置一个问号(?)来表明你不想设置的那个字段。表7.1中显示了一些cron表达式的例子和它们的意义:

表7.1                                            一些cron表达式的例子

表  达  式
 意    义
 
0 0 10,14,16 * *  
 每天上午10点,下午2点和下午4点
 
0 0,15,30,45 * 1-10 *  
 每月前10天每隔15分钟
 
30 0 0 1 1   2012
 在2012年1月1日午夜过30秒时
 
0 0 8-5   * MON-FRI
 每个工作日的工作时间
 

 

对于cronReportTrigger,我们设置cronExpression为0 0 6 * *  可以把它读作“在任何月份任何日期(不管是星期几)的6时0分0秒执行触发器。”换句话说,这个触发器会在每天早晨6:00执行。

 

分享到:
评论

相关推荐

    spring定时任务关键jar包(齐全)

    其中,Spring的定时任务功能是许多项目中的重要组成部分,它允许开发者安排和执行周期性的任务。本文将详细探讨Spring定时任务的关键知识点,并与提供的jar包列表关联。 首先,Spring定时任务主要依赖于`spring-...

    Spring定时任务实现(非Web项目)

    综上所述,Spring提供的定时任务功能使得开发者能够轻松地在非Web项目中实现复杂的时间驱动逻辑,无论是简单的定时执行还是基于Cron表达式的复杂调度,Spring都能提供强大的支持。通过合理配置和编程,我们可以创建...

    spring定时任务依赖的jar包

    2. **依赖的jar包**:实现Spring定时任务,通常需要以下10个关键的jar包: - `spring-context`: 包含了Spring的核心功能,如依赖注入(DI),AOP,事件处理等,是实现定时任务的基础。 - `spring-context-support`: ...

    spring定时任务实现

    Spring框架提供了多种方式来实现定时任务,这使得开发者可以在不同场景下选择最适合的方案。本文主要探讨了Spring中实现定时任务的三种主要方法:Java的`java.util.Timer`、Quartz库以及Spring自身的Task调度器。 ...

    Spring定时任务

    综上所述,Spring定时任务是Spring框架中的重要组成部分,提供了丰富的功能来满足各种定时任务需求。通过合理的配置和设计,可以有效地提升应用的自动化水平和响应速度。在实际开发中,应根据项目需求灵活选择定时...

    spring定时任务所需jar

    总的来说,Spring的定时任务功能强大且易于使用,通过合理的配置和jar包的集成,我们可以轻松地实现各种定时任务需求,无论是简单的周期性任务还是复杂的调度逻辑。在项目中正确地引入这些jar包,可以极大地提高开发...

    Spring定时任务(Web项目)

    一、Spring定时任务简介 Spring框架的定时任务功能主要依赖于`Spring Task`模块,也称为Spring的后台任务处理。它提供了基于`@Scheduled`注解和`TaskScheduler`接口的两种定时任务实现方式。`@Scheduled`适用于简单...

    Spring中定时任务

    总的来说,Spring的定时任务功能为开发者提供了极大的灵活性和便利性,无论是简单的周期性任务还是复杂的调度需求,都可以轻松应对。在实际开发中,选择合适的定时任务实现,结合Eclipse和Maven的工具支持,可以高效...

    spring定时任务实例

    总结一下,本实例展示了如何利用Spring的定时任务功能配合MyBatis进行数据插入。通过`@Scheduled`注解定义任务,`@EnableScheduling`开启调度,以及MyBatis的Mapper接口进行数据库操作,我们可以实现定期向数据库...

    spring定时任务执行两次的异常排查处理

    一个tomcat下部署了两个应用,一个是普通web应用syncc,另一个应用syncc_wx属于微信公众号后台程序涉及消息定时推送,tomcat未分离...”spring定时任务执行两次的异常排查处理.docx"针对上述描述问题进行分析和解决。

    spring xml 定时任务

    在Spring框架中,XML配置是传统且广泛使用的方式来设置应用的组件和行为,包括实现定时任务。定时任务在软件开发中扮演着重要角色,它允许应用程序在预设的时间执行特定的任务,例如数据清理、日志归档或者发送通知...

    Spring定时任务的简单例子

    要使用Spring的定时任务功能,首先在你的`pom.xml`(如果是Maven项目)或`build.gradle`(如果是Gradle项目)文件中添加Spring Boot的`spring-boot-starter-task`依赖。如果使用的是Spring Framework而非Spring ...

    spring2.0学习笔记+spring定时任务

    标题 "spring2.0学习笔记+spring定时任务" 暗示了我们即将探讨的是关于Spring框架2.0版本的学习心得以及如何在Spring中配置和使用定时任务。在这个主题下,我们将深入理解Spring的核心概念,特别是它在企业级Java...

    spring自带定时任务程序

    给定的压缩包可能包含了一个关于如何配置、使用和测试Spring定时任务的文档。这个文档应该详细介绍了每个步骤,包括如何在Spring环境中注册和启动定时任务,如何编写带有`@Scheduled`注解的方法,以及如何编写测试...

    spring定时任务

    总结来说,Spring的定时任务功能为开发者提供了强大的定时执行能力,无论是通过XML配置还是Java-config,都能方便地实现周期性任务的定义和管理。了解并熟练掌握这两种方式,对于提升项目维护性和自动化水平大有裨益...

    spring动态配置定时任务

    在Java Spring框架中,动态配置定时任务是一项非常实用的功能,它允许我们根据需求灵活地更改或添加定时任务,而无需每次改动都重启应用。本文将深入探讨如何在Spring中实现这种动态配置,以及如何结合数据库来管理...

    spring执行定时任务的规则

    Spring框架提供的定时任务功能极大地简化了开发者的日常工作,使其能够轻松地配置和管理定时任务。通过了解和掌握上述定时任务表达式的规则,开发者可以更高效地完成任务调度的需求。此外,对于更复杂的应用场景,还...

    Spring3.0定时任务简单实例web工程

    在本实例中,我们关注的是Spring 3.0版本中的定时任务功能,这是一个基于Web工程的简单示例,适合在MyEclipse环境中运行。 首先,我们要了解Spring 3.0中的定时任务是如何工作的。Spring提供了`TaskExecutor`接口和...

    spring之定时任务实现(spring-task和quartz等不同方式)

    Spring框架提供了一系列工具来支持定时任务的实现,其中包括Spring自带的`spring-task`模块和第三方的Quartz库。下面我们将详细探讨这两种方式以及如何通过注解和非注解的方式进行配置。 首先,`spring-task`是...

    Spring 框架自带定时任务和Quartz定时任务

    在这两种方式中,Spring框架提供了自己的定时任务工具Spring Task,以及与专业定时任务框架Quartz集成的能力。 首先,对于Java自带的定时任务实现,我们可以使用java.util.Timer和java.util.TimerTask类。Timer类...

Global site tag (gtag.js) - Google Analytics