Spring-scheduled

 

以前写定时任务都是用 timertask, 现在用spring自带的 schediled

spring配置文件需要的配置

1.

xmlns:task="http://www.springframework.org/schema/task" 

2.

http://www.springframework.org/schema/task  
http://www.springframework.org/schema/task/spring-task-3.1.xsd

3.  

<!-- 启动定时任务注解驱动 -->
<task:annotation-driven scheduler="myScheduler"/>
<!-- 配置定时任务的线程池 -->
<task:scheduler id="myScheduler" pool-size="5"/>  
<!-- 开启注解 -->  
<context:component-scan base-package="common.task" />

4.测试用例: 

@Component
public class Job01 {

	@Scheduled(cron="0/5 * *  * * ? ")   //每5秒执行一次
	public void jTest1(){
		System.out.println("测试开始");
	}
}

  

注意的问题:

1.建议使用线程池

spring-scheduled 默认是单线程的,如果同一时间开启多个任务会有延迟

2.任务的类要有 @Component 注解标识

3.任务方法要有 @Scheduled 注解配置 cron 表达式

 

posted @ 2017-04-25 21:26  江湖一笑  阅读(260)  评论(0编辑  收藏  举报