SpringTask 定时器-(xml方式)

SpringTask是spring3.0后自主提供的定时任务的工具, spring-task,

可以将它比作一个轻量级的Quartz,而且使用起来很简单,

除spring相关的包外不需要额外的包,而且支持注解和配置文件两种形式。

xml 配置

  1. Spring创建任务所在的类型的对象,配置定时任务
1
2
3
4
5
6
7
8
9
10
<!--创建出来定时任务所在的类的对象-->
<bean id="myTask" class="com.carson.test.MyTask"></bean>

<!-- ref:执行的方法属于哪个对象
method:方法名
cron:执行时机的表达式
-->
<task:scheduled-tasks>
<task:scheduled ref="myTask" method="task" cron="*/1 * * * * ? "/>
</task:scheduled-tasks>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
package com.carson.test;

import org.junit.Test;
import org.springframework.context.support.AbstractApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

@Component
public class MyTask {


public void task() throws Exception{
System.out.println("任务执行了");
}

// 在测试方式中获取容器,启动容器
@Test
public void testTask() throws Exception{
AbstractApplicationContext context =
new ClassPathXmlApplicationContext("applicationContext.xml");
context.start();
System.in.read();
}
}

cron 表达式

一个cron表达式有至少6个用空格分隔的时间元素。

按顺序依次为
\1. 秒(0~59)
\2. 分钟(0~59)
\3. 小时(0~23)
\4. 天(0~31)
\5. 月(0~11)
\6. 星期(1~7 1为SUN-依次为SUN,MON,TUE,WED,THU,FRI,SAT)
\7. 年份(1970-2099)

其中每个元素可以是一个值(如6),一个间隔时间(8-18/4)(/一个列表(1,3,5),
月份中的日期”星期中的日期”必须要对其中一个设置?. 0 0 10,14,16 ? 点,下午2点 0 0/30 9-17 ?
表示每个星期三中午12
每天中午12
每天上午10:15
每天上午10:15
每天上午10:15
年的每天上午10:15
在每天下午2期间的每1
在每天下午2期间的每5
在每天下午2期间和下午6期间的每5
在每天下午2期间的每1
每年三月的星期三的下午2:10触发 0 15 10 ? MON-FRI 触发 0 15 10 15 ? 日上午10:15
每月最后一日的上午10:15
每月的最后一个星期五上午10:15
年至2005触发 0 15 10 ? 6#3 触发
例如:子表达式(天(星期))可以为 “MON-FRI”,WED,“MON-WED,SAT” “

字符用来指定数值的增量 表示从第0分钟 表示从第3分钟(它和“3,43”
?”
当2?” “L” 的缩写 前有具体的内容,它就具有其他的含义了。表示这个月的倒数第6天 参数时,不要指定列表或范围,因为这会导致问题 W ,并且仅能用于日域中。
大部分的商业处理都是基于工作周的,所以 W
假如15会在14星期五)五号更近。 #:域。例如在4#2

# Spring
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×