浅谈SpringBoot中的定时器Scheduled

在springBoot3.0的版本中加了Scheduled定时任务器,通过注解方便我们设置定时任务

如何使用Scheduled定时任务器

1.在启动类上加上@EnableScheduling注解,表示对定时任务的支持

/**
 * 启动器
 */
@EnableScheduling
@SpringBootApplication
public class LTMCAdminApp {

	public static void main(String[] args) {
		SpringApplication.run(LTMCAdminApp.class, args);
	}
}

2.编写一个定时任务类,加上@Component
3.在需要定时执行的方法上加上@Scheduled注解,定时执行

/**
 * 
 * @ClassName: TaskScheduling
 * @Description: 定时器
 */
@Component
@ConditionalOnProperty(prefix = "scheduling", name = "enabled", havingValue = "true")
public class TaskScheduling {
	@Autowired
	ProxyPoolTask proxyPoolTask;
	@Scheduled(cron = "0 0 1 * * ? ")
	public void setProxyPoolCount() {
		proxyPoolTask.executor();
	}
}

注意:@Scheduled注解是配置时间域的,他有cron和fixedDelay两种形式

cron

其中cron表达式又有两种语法格式,分别是七位和六位
七位:@Scheduled(cron=“0 0 1 0 0 0 0”)每一位分别代表着秒,分,时,天,月,周,年
六位:@Scheduled(cron=“0 0 1 0 0 0”)每一位分别代表着秒,分,时,天,月,周
而cron中有几个特殊符号要注意一些
比如说:
星号(*) 代表的是时间的每一时刻:@Scheduled(@cron=“0 0 1 * * *”)表示每一天的凌晨一点执行
问好(?)代表占位符,无意义的值:@Scheduled(@cron=“0 0 1 1 1 ?”)表示一月一号凌晨一点执行
减号(-)代表一个时间范围:@Scheduled(@cron=“10-15 0 1 1 1 ?”)表示一月一号凌晨一点的第10至 第15秒执行
逗号(,)表示一个列表值,并列存在:@Scheduled(@cron=“10,15 0 1 1 1 ?”)表示一月一号凌晨一点的第10和第15秒执行
斜杠(/)代表间隔:@Scheduled(@cron=“0/2 * * * * *”)表示从第0秒开始每隔两秒执行一次,/前面是表示从什么时间开始,/后面的数字代表时间间隔

fixedDelay

@Scheduled(fixedDelay = 60*1000)表示每1分钟执行一次

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值