spring定时器的使用——schedule

applicationContext-schedule.xml配置:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	   xmlns:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p"
	   xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
	   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:task="http://www.springframework.org/schema/task"
	   xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
	http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd
	http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd
	http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.0.xsd http://www.springframework.org/schema/task http://www.springframework.org/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 配置间的差别。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值