applicationContext-schedule.xml配置:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework/schema/beans"
xmlns:context="http://www.springframework/schema/context" xmlns:p="http://www.springframework/schema/p"
xmlns:aop="http://www.springframework/schema/aop" xmlns:tx="http://www.springframework/schema/tx"
xmlns:xsi="http://www.w3/2001/XMLSchema-instance" xmlns:task="http://www.springframework/schema/task"
xsi:schemaLocation="http://www.springframework/schema/beans http://www.springframework/schema/beans/spring-beans-4.0.xsd
http://www.springframework/schema/context http://www.springframework/schema/context/spring-context-4.0.xsd
http://www.springframework/schema/aop http://www.springframework/schema/aop/spring-aop-4.0.xsd http://www.springframework/schema/tx http://www.springframework/schema/tx/spring-tx-4.0.xsd
http://www.springframework/schema/util http://www.springframework/schema/util/spring-util-4.0.xsd http://www.springframework/schema/task http://www.springframework/schema/task/spring-task.xsd">
<task:annotation-driven scheduler="schedule" executor="executor"/>
<!-- 在执行定时任务时最多启用五个线程 -->
<task:scheduler id="schedule" pool-size="5"/>
<!-- 与@Async配合使用,会在调度线程调用该任务时启用一个线程池,线程最大数为5,最小数为2,缓存任务为200,多于200的拒绝策略为丢弃 -->
<task:executor id="executor" pool-size="5" keep-alive="2" queue-capacity="200" rejection-policy="ABORT"/>
<context:annotation-config />
<context:component-scan base-package="****"/>
</beans>
applicationContext-root.xml中引入applicationContext-schedule.xml:
<import resource="classpath:applicationContext-schedule.xml" />
web.xml的配置:
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext-root.xml</param-value>
</context-param>
java类中的写法:
@Scheduled(cron = "0 0 0/5 * * ?")
void syncCaseStatus() {
System.out.println("================定时器=============");
}
总结:1.java类所在的包要跟applicationContext-schedule.xml中配置的扫描包对应。
2.spring中schedule默认是单线程的,要开启多线程需要加上applicationContext-schedule.xml中的配置
3.注意scheduler 和executor 配置间的差别。
更多推荐
spring定时器的使用——schedule
发布评论