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 表达式