使用Spring框架写定时器
使用Spring框架写定时器
木云凌 发表于1年前
使用Spring框架写定时器
  • 发表于 1年前
  • 阅读 18
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 新注册用户 域名抢购1元起>>>   

摘要: 配置哪个时间点执行

首先spring.xml文件中必须有以下信息的最后三行

<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  xmlns:tx="http://www.springframework.org/schema/tx"
	xmlns:context="http://www.springframework.org/schema/context"
	xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
	xmlns:aop="http://www.springframework.org/schema/aop" xmlns:p="http://www.springframework.org/schema/p"
	xmlns:jee="http://www.springframework.org/schema/jee" 
	xsi:schemaLocation="http://www.springframework.org/schema/beans   
		http://www.springframework.org/schema/beans/spring-beans.xsd   
		http://www.springframework.org/schema/context   
		http://www.springframework.org/schema/context/spring-context-3.2.xsd   
		http://code.alibabatech.com/schema/dubbo     
		http://code.alibabatech.com/schema/dubbo/dubbo.xsd  
		http://www.springframework.org/schema/aop   
		http://www.springframework.org/schema/aop/spring-aop-3.2.xsd   
		http://www.springframework.org/schema/jee   
		http://www.springframework.org/schema/jee/spring-jee-3.2.xsd 
		http://www.springframework.org/schema/tx   
		http://www.springframework.org/schema/tx/spring-tx-3.2.xsd
		
		http://www.springframework.org/schema/task
     	http://www.springframework.org/schema/task/spring-task-3.0.xsd"
		
	xmlns:task="http://www.springframework.org/schema/task">

以及加上以下注解:

	<!-- 	任务扫描注解 -->
	<task:executor id="executor" pool-size="5" />  
	<task:scheduler id="scheduler" pool-size="10" />  
	<task:annotation-driven executor="executor" scheduler="scheduler" />

接着就写一个用@Component注解的普通java类即可

@Component
public class ContractTimer {

其中需要执行的方法则使用@Scheduled注解,那么这个方法就会在配置好的时间点上自动执行

	/**
	 * 定时检查创建时间是否已过48小时(两天),如果过期则自动设为作废(每天的每小时都执行一次) 
	 * fixedRate = 1000 * 60 * 60 * 24  每天执行一次
	 * fixedDelay=1000*60*2                       启动后2分钟执行
	 * cron = "0 0 3 * * *" 		     每天凌晨3点执行  秒分时天月星期(1-7)
	 * 三个只能写一个
	 * @throws IOException
	 */
//	@Scheduled(cron = "0 0 1,7,11,19 * * *")
	@Scheduled(cron = "0 20 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23 * * *")
	public void updPushIndex(){

这个注解的配置使用说明如下:@Scheduled(cron = "0 0 1,7,11,19 * * *")里的cron参数是具体的时间点,小括号内是六个参数(也可以是七个),用空格号隔开,这六个参数分别对应:

秒(0~59)  

分钟(0~59)  

小时(0~23)

天(月)(0~31,但是需要考虑月的天数)  

月(0~11)

天(星期)(【1~7 1=SUN】 或【SUN,MON,TUE,WED,THU,FRI,SAT】)

第七个(可不配):年份(1970-2099)

【每个参数都可以配多个时间点,参考上述代码例子】

最后必须重复提醒,xml文件的配置是必不可少的,如果只会写代码而不知道去配置的话是没有半点用处的

其次,之前在网上转了个相关博客,感觉说得也比较详细的:https://my.oschina.net/watsonos/blog/796688

共有 人打赏支持
木云凌
粉丝 6
博文 50
码字总数 17191
×
木云凌
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: