基于spring的定时任务的实现

本文介绍了基于Spring的定时任务实现方法,包括@Scheduled注解的使用,如fixedRate、fixedDelay和cron表达式的区别。当面临任务并发执行时,通过@Async和@EnableAsync开启异步,利用线程池避免阻塞。此外,还提及了更高级的定时任务框架,如Quartz和xxl-job,选择取决于具体业务需求。
摘要由CSDN通过智能技术生成

一、直接通过@Scheduled来实现

@Configuration
@EnableScheduling
public class TaskTimingJob {
   

    @Scheduled(fixedDelay=60000)
    private void configureTasks() {
   
        // todo
    }
}

@Scheduled主要的四个参数说明如下:

1、fixedRate是指上一次任务的开始时间到下一次任务的开始时间的间隔,如果阻塞会记录需要执行的次数,通畅后全部会执行。
2、fixedDelay是指了上一次任务的结束时间到下一次任务的开始时间的间隔,如果阻塞会记录需要执行的次数,通畅后全部会执行。
3、cron表达式和fixedRate有点相似,指在哪一刻执行任务,会在配置的任务开始时间判断任务是否可以执行,如果能则执行,不能则会跳过本次执行。
4、如果是强调任务间隔的定时任务,建议使用fixedRate和fixedDelay,如果是强调任务在某时某分某刻执行的定时任务,建议使用cron表达式。

注意:这种方式实现的定时任务当同一时刻有多个任务需要执行,会发生阻塞,即是单线程串行的执行方式,要避免这种情况就要加上注解@Async并且在springboot主类上加@EnableAsync开启异步,这样会默认使用自带的线程池,当然也可以使用自定义的&#x

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值