注解方式进行spring定时任务的调用

本文介绍了Spring框架中定时任务的配置方式,包括通过XML配置文件启用定时任务、使用注解进行任务调度的方法,并详细解释了@Scheduled注解中initialDelay、fixedDelay、fixedRate及cron表达式的含义与应用实例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、定时任务的配置方式

1、xml配置文件
在spring.xml文件中开启注解扫描与定时任务扫描

  

  
  1. <context:component-scan base-package="com.gy.mytask"/>
  1. <task:annotation-driven>
在需要定时调用的任务类上面添加注解
@Component
在调用的定时任务方法上添加注解
@Scheduled()

完整截图:

@PropertySource(value = {"classpath:config.properties"})
@EnableScheduling
@Component
@Lazy(false)
public class HandleTask {
	
	@Scheduled(cron="${report.userInfo}")
	public void testSchdule() {
		System.out.println("注解形式定时任务执行中");
	}
}
括号中有   initialDelay=1000fixedRate=5000  fixedDelay=5000   cron="*/5 * * * * MON-FRI"
这三种写法   分别表示  初始化时间  定时任务调用周期  和定时任务调用时间规律

1.initialDelay :初次执行任务之前需要等待的时间

@Scheduled(initialDelay =5000)
public void doSomething() {

}

 

2.fixedDelay:每次执行任务之后间隔多久再次执行该任务。

@Scheduled(fixedDelay=5000)
public void doSomething() {
    // something that should execute periodically
}

 

3.fixedRate:执行频率,每隔多少时间就启动任务,不管该任务是否启动完成

@Scheduled(fixedRate=5000)
public void doSomething() {

}

4.cron=“”设置时分秒等具体的定时 例子如下。


定时任务调用的时间方法按照如下规律:
  1. 1.秒(059)  
  2. 2.分钟(059)  
  3. 3.小时(023)  
  4. 4.月份中的日期(131)  
  5. 5.月份(112或JAN–DEC)  
  6. 6.星期中的日期(17或SUN–SAT)  
  7. 7.年份(19702099)  
  8.           秒 0-59 , - * /   
  9.           分 0-59 , - * /   
  10.           小时 0-23 , - * /   
  11.           日期 1-31 , - * ? / L W C   
  12.           月份 1-12 或者 JAN-DEC , - * /   
  13.           星期 1-7 或者 SUN-SAT , - * ? / L C #   
  14.           年(可选)留空, 1970-2099 , - * /   
  15.           表达式意义   
  16.           "0 0 12 * * ?" 每天中午12点触发   
  17. "0 15 10 ? * *" 每天上午10:15触发   
  18. "0 15 10 * * ?" 每天上午10:15触发   
  19. "0 15 10 * * ? *" 每天上午10:15触发   
  20. "0 15 10 * * ? 2005" 2005年的每天上午10:15触发   
  21. "0 * 14 * * ?" 在每天下午2点到下午2:59期间的每1分钟触发   
  22. "0 0/5 14 * * ?" 在每天下午2点到下午2:55期间的每5分钟触发   
  23. "0 0/5 14,18 * * ?" 在每天下午2点到2:55期间和下午6点到6:55期间的每5分钟触发   
  24. "0 0-5 14 * * ?" 在每天下午2点到下午2:05期间的每1分钟触发   
  25. "0 10,44 14 ? 3 WED" 每年三月的星期三的下午2:102:44触发   
  26. "0 15 10 ? * MON-FRI" 周一至周五的上午10:15触发   
  27. "0 15 10 15 * ?" 每月15日上午10:15触发   
  28. "0 15 10 L * ?" 每月最后一日的上午10:15触发   
  29. "0 15 10 ? * 6L" 每月的最后一个星期五上午10:15触发   
  30. "0 15 10 ? * 6L 2002-2005" 2002年至2005年的每月的最后一个星期五上午10:15触发   
  31. "0 15 10 ? * 6#3" 每月的第三个星期五上午10:15触发   
  32. 每天早上6点   
  33. 0 6 * * *   
  34. 每两个小时   
  35. 0 */2 * * *   
  36. 晚上11点到早上7点之间每两个小时,早上八点   
  37. 0 23-7/28 * * *   
  38. 每个月的4号和每个礼拜的礼拜一到礼拜三的早上11点   
  39. 0 11 4 * 1-3   
  40. 11日早上4点   
  41. 0 4 1 1 *  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值