`
slikel
  • 浏览: 64674 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

Spring3.0的任务调度

阅读更多
Spring3.0以后,自己已经完全支持更加精确的时间,而不需要Quartz的支持:当然后面我们也会用Quartz实现任务的调度。

Spring3.0同样也使用cron表达式。与Quartz不同的是,Spring3.0不支持年,而Quartz支持年。但这点好象并不是非常重要。

cron表达式:-是用空格分开的时间字段,不使用年。

*(秒0-59)    *(分钟0-59)   *(小时0-23)  *(日期1-31)   *(月份1-12或是JAN-DEC)  *(星期1-7或是SUN-SAT)  

示例:
*/5  * * * * 6-7  :: 每个周6到周日,每隔5秒钟执行一次。

*/1 * * 7-9 1-2 1-7 :: 1月到2月中的7号到9号,且必须要满足周一到周日,每隔1秒钟执行一次。

*/1 * * 7-9 1,5 1-7  :: 注意里面的,(逗号),只有1月和5月的7到9号,且必须要满足周一到周日,每一秒钟执行一次。

*/1 17-59 * 7-9 1,5 1-7 :: 只解释17-59,是指从第17分钟到第59分钟,在指定的时间内,每一秒种执行一次
* 17-59 * 7-9 1,5 1-7   :: 此代码的功能与上面完全相同。如果不写秒即为每一秒执行一次。


59 19-23 * 7-9 1,5 1-7  :: 19分-23分的每59秒钟时只执行一次。

59 19,26 * 7-9 1,5 1-7  :: 注意里面的,(逗号),是指只有19分或是26分的56秒钟时执行一次。

* * 16-23 7-9 1,5 1-7   :: 定义每天的16点到23点每一秒钟执行一次。


59 59 23 * * 1-5  :: 定义每周1到周5,晚上23:59:59秒只执行一次。这个相当用有。可以工作时间每天给用户发邮件。

在Spring3.0中引用了新的命名空间-task:

task:scheduler 用于定义一个ThreadPoolTaskScheduler,并可以指定线程池的大小,即pool-size.所有任务队列都将会在指定大小的线程池中运行:
定义如下:
<!-- 对于同一个Pojo可以声明多次,并设置标记属性 -->

<bean id="one" class="cn.itcast.schedule.One">
<property name="task" value="A"></property>
</bean>
<bean id="two" class="cn.itcast.schedule.One">
<property name="task" value="B"></property>
</bean>
<bean id="three" class="cn.itcast.schedule.One">
<property name="task" value="C"></property>
</bean>
<!-- 声明一个具有两个线程的池,每一个对象将获取同样的运行机会 -->
<task:scheduler id="sch" pool-size="2"/>
<!-- 引用线程池 -->
<task:scheduled-tasks scheduler="sch">
<!-- 引用Spring Bean并设置调用的方法的时间间隔 -->
<task:scheduled ref="one" method="doSomeThing"  fixed-delay="#{1000*3}"/>
<task:scheduled ref="two" method="doSomeThing"  fixed-delay="#{1000*3}"/>
<task:scheduled ref="three" method="doSomeThing"  fixed-delay="#{1000*3}"/>
</task:scheduled-tasks>
<!-- 配置一个定时执行的任务 -->
<bean id="work" class="cn.itcast.schedule.Two"/>
<task:scheduler id="sendMail"/>
<task:scheduled-tasks scheduler="sendMail">
<!-- 定义在1月8号19:37:1秒执行一次,无论是周几 -->
<task:scheduled ref="work" method="work" cron="1 37 19 8 1 *"/>
</task:scheduled-tasks>
 
定义好之后,正常启动容器即可,只有条件符合,即会按要求执行任务。
分享到:
评论

相关推荐

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

    总结来说,这个"Spring3.0定时任务简单实例web工程"提供了一个使用Spring 3.0实现定时任务的实例,通过配置`TaskScheduler`,定义任务类,使用`@Scheduled`注解设置执行计划,最后在Web应用启动时启动任务,可以方便...

    定时任务spring3.0

    `@EnableScheduling`注解在类上启用定时任务调度器。 2. **基于XML配置的定时任务**: 在Spring配置文件中定义`&lt;task:scheduled-tasks&gt;`元素,并通过`&lt;task:scheduled&gt;`子元素设置定时任务,如下: ```xml ...

    Spring3.0Jar包

    9. **Quartz 集成**:Spring 3.0 提供了对 Quartz 定时任务调度器的集成,方便进行定时任务的管理和执行。 10. **国际化支持**:Spring 提供了 `MessageSource` 接口,用于处理多语言消息,使得应用能够适应不同...

    spring3.0发行版

    此外,Spring 3.0在国际化(i18n)、邮件服务、任务调度等方面也有诸多改进。例如,MessageSource接口提供了更强大的国际化支持,而TaskExecutor和TaskScheduler接口则使得异步任务处理和定时任务的实现变得简单。 ...

    spring 3.0api

    Spring 3.0 API是Java开发中至关重要的一个框架,它是Spring框架的一个主要...通过查阅`Spring3.0-API.chm`文件,开发者可以快速查找并学习到Spring 3.0中的各种功能和API,从而更好地利用Spring进行应用程序的开发。

    spring 3.0 src

    8. **任务调度**:Spring 3.0引入了TaskExecutor和TaskScheduler接口,提供了灵活的任务执行和调度能力,支持定时任务和并发任务。 9. **国际化(Internationalization,i18n)**:Spring 3.0提供了更强大的国际化...

    spring 3.0 jar 所有开发包及开发项目实例

    org.springframework.context-3.0.0.M4.jar: 提供在基础IoC功能上的扩展服务,此外还提供许多企业级服务的支持,如邮件服务、任务调度、JNDI定位、EJB集成、远程访问、缓存以及各种视图层框架的封装等 org.spring...

    spring3.0架包

    5. `org.springframework.context.support-3.0.0.RELEASE`:提供了对Spring-context的扩展支持,主要用于MVC场景,包含了对邮件服务、任务调度、JNDI定位、EJB集成、远程访问、缓存和视图层框架封装等功能。...

    spring3.0 + Quartz1.52 + applicationContext.xml

    这个压缩包“spring3.0 + Quartz1.52 + applicationContext.xml”显然是一个关于如何在Spring 3.0环境中集成Quartz 1.52版本的示例或教程资源。 首先,`applicationContext.xml`是Spring框架的核心配置文件,它定义...

    spring3.0帮助文档

    以上只是Spring 3.0配置知识的一部分,实际文档中会涵盖更多细节,包括如何配置数据源、事务管理、缓存、任务调度等,以及如何使用Spring的测试框架进行单元测试和集成测试。通过深入学习和理解这些配置机制,开发者...

    spring3.0+quartz-1.6.0定时

    总结起来,"spring3.0+quartz-1.6.0定时"的实现涉及到Spring框架的定时任务支持和Quartz库的结合使用,通过Spring的配置管理Quartz调度器,定义任务和触发器,最后编写具体任务逻辑的Java类。这种组合在实际项目中...

    Spring3.0 mvc 定时器及多线程任务demo

    在Spring 3.0 MVC框架中,定时器和多线程任务是两个关键概念,用于构建高效、自动化的Web应用程序。下面将详细讲解这两个概念及其在实际应用中的使用。 一、Spring 3.0 MVC定时器 在Spring 3.0中,我们可以使用...

    spring3.0的中文帮助文档和权威开发指南

    13. **Quartz调度器集成**:Spring提供了与Quartz作业调度库的集成,方便安排定时任务。 14. **国际化(i18n)**:Spring提供了对国际化消息资源的支持,使应用程序能轻松地适应多种语言环境。 15. **测试支持**:...

    Spring-3.0.xsd

    - **Namespace Handler**:允许自定义命名空间,扩展XML配置,如数据源、任务调度等。 - **Profile**:支持环境相关的配置,可以根据不同的运行环境加载不同的配置。 - **Lazy Initialization**:通过lazy-init属性...

    spring3.0异步

    为了确保异步任务的正确执行,我们需要关注一些关键点,如异常处理、任务调度、线程池配置等。Spring提供了`AsyncUncaughtExceptionHandler`来捕获并处理异步方法抛出的未被捕获异常。此外,通过`@EnableAsync`配置...

    struts2.1.18+hibernate3.5.6+spring3.0整合jar

    Spring框架则是一个全面的企业级应用开发框架,它涵盖了依赖注入、AOP(面向切面编程)、数据访问、Web应用、任务调度等多个方面。Spring3.0版本引入了大量新特性,如XML配置的替代——基于注解的配置,以及...

    Spring v3.0.0.RELEASE源码

    9. **并发支持**:Spring 3.0引入了TaskExecutor接口和ThreadPoolTaskExecutor实现,提供了异步任务执行和调度的能力,帮助开发者更好地处理并发问题。 10. **国际化与本地化**:Spring 3.0加强了对国际化和本地化...

    spring定时器3.0之前和3.0之后版本以及相应的项目实例

    新的定时器支持更灵活的任务调度,例如周期性执行、延迟执行和一次性执行。此外,Spring 3.0引入了`@Scheduled`注解,使得开发者可以更加直观地在方法上声明定时任务,极大地简化了代码。 在3.0版本中,`...

    restlet2.0+spring3.0+hibernate3.3.框架集成

    在这个场景中,我们关注的是"restlet2.0+spring3.0+hibernate3.3"的整合,这是一个经典的Java Web开发组合,分别代表了RESTful API、服务层管理和持久化层的优秀实践。 首先,让我们深入了解每个框架的核心特性: ...

Global site tag (gtag.js) - Google Analytics