`

Spring3.0的任务调度<转>

 
阅读更多
Spring Security 3.0系列开发出来的时间并不长,不过目前已经有许多项目整合进入了Spring Security 3.0,原因是确实比2.0系列有了不上改进,不过目前关于Spring Security 3.0的中文开发文档和书籍太少了,下面张老师为大家介绍Spring Security 3.0的任务调度。
Spring3.0以后,自己已经完全支持更加精确的时间,而不需要Quartz(Quartz是一个开放源码项目,专注于任务调度器,提供了极为广泛的特性如持久化任务,集群和分布式任务等。Spring对Quartz的集成与其对JDK Timer的集成在任务、触发器和调度计划的声明式配置方面等都非常相似。
)的支持:当然后面我们也会用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.所有任务队列都将会在指定大小的线程池中运行:
定义如下:
用法1:
<!-- 对于同一个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>
<!-- 声明一个具有两个线程的池,每一个对象将获取同样的运行机会 -->
<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-tasks>
用法2:
<!-- 配置定时执行的任务 -->
<bean id="taskId" class="com.importdata.service.TestTask"/>
<task:scheduled-tasks>
<!-- 定义在1月8号19:37:1秒执行一次,无论是周几 -->
<task:scheduled ref="taskId" method="test" cron="1 37 19 8 1 *"/>
</task:scheduled-tasks>
注意:命名空间需要引入
xmlns:task="http://www.springframework.org/schema/task"
schemaLocation中引入http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-3.0.xsd
定义好之后,正常启动容器即可,只有条件符合,即会按要求执行任务。
引用:http://www.itxsw.com/ITUse/2012-03/29.html
分享到:
评论

相关推荐

    Spring3.0作业调度

    【Spring 3.0作业调度】是Spring框架中的一个重要组件,它允许开发者在特定时间点或按照预定的周期执行任务,极大地增强了应用的自动化能力。本文将深入探讨Spring 3.0中的作业调度机制,包括其重要性、基本概念、...

    定时任务spring3.0

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

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

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

    Spring3.0Jar包

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

    spring3.0发行版

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

    spring3.0+quartz-1.6.0定时

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

    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提供了更强大的国际化...

    spring3.0帮助文档

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

    Spring-3.0.xsd

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

    spring3.0 + Quartz1.52 + applicationContext.xml

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

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

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

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

    return new AsyncResult&lt;&gt;("任务完成"); } } ``` 在这个例子中,`longRunningTask`方法将在单独的线程中异步执行,不会阻塞主线程。 三、结合使用定时器和多线程 在某些场景下,定时任务可能需要执行多线程任务。...

    spring3.0架包

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

    spring3配置quartz定时任务

    在Java开发中,Spring框架是不可或缺的一部分,而Quartz则是一个强大的作业调度库,用于创建、调度和执行作业。本文将详细介绍如何在Spring 3中配置Quartz来实现定时任务。 首先,理解定时任务的基本概念。定时任务...

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

    在Spring的早期版本中,定时任务主要依赖于`org.springframework.scheduling.timer`包,而在3.0版本之后,Spring引入了Quartz和Spring Task(也称为`org.springframework.scheduling.concurrent`)来提供更加强大的...

    Spring提供的三种定时任务机制及其比较

    通过在方法上添加此注解,Spring的定时任务执行器会自动处理任务调度。这种方法适用于简单任务,且不需Quartz的复杂特性。例如: ```java @Component public class ScheduledTasks { @Scheduled(fixedRate = ...

    Spring普通定时任务和动态设置定时任务

    对于这类需求,Spring 提供了一种简单且灵活的方式来实现定时任务:通过集成 Quartz 调度器。Quartz 是一个开源的作业调度库,能够触发在Java环境中编写的应用程序。Spring 通过提供一系列的抽象层来简化 Quartz 的...

    spring基于task标签和通过xml配置实现任务的区别

    本篇文章将深入探讨两种不同的任务调度方式:基于`&lt;task&gt;`标签的配置和通过XML配置实现的任务。这两种方法都是Spring为开发者提供的强大工具,但它们在使用场景、灵活性和配置方式上有所区别。 1. **基于`&lt;task&gt;`...

Global site tag (gtag.js) - Google Analytics