• springboot实现定时任务 基于@Scheduled注解


    在平常的开发工作中,我们经常会用到定时任务,比如定时刷新数据,定时去执行某个业务操作,定时任务,我们经常使用,那么springboot可以怎样实现定时任务呢?

    1:创建定时任务:方法上添加@Scheduled注解,定义执行频率,如@Scheduled(fixedRate = 1000)

    1. @Component
    2. public class ScheduledTask {
    3.     
    4.     @Scheduled(fixedRate = 1000)
    5.     public void scheduledTest() {
    6.         // 打印时间
    7.         SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
    8.         System.out.println(sdf.format(new Date()));
    9.     }
    10. }


    2:创建启动类:在启动类上面添加@EnableScheduling注解,配置在启动类上,开启对计划任务的支持。

    1. import org.springframework.boot.SpringApplication;
    2. import org.springframework.boot.autoconfigure.SpringBootApplication;
    3. import org.springframework.scheduling.annotation.EnableScheduling;
    4.  
    5. @SpringBootApplication
    6. @EnableScheduling
    7. public class SpringbootApplicationTest {
    8.  
    9.     public static void main(String[] args) {
    10.         SpringApplication.run(SpringbootApplicationTest.class, args);
    11.     }
    12. }


    3:启动项目:看控制台打印时间 

    @Scheduled注解参数说明

    参数    说明    示例
    cron    任务执行的cron表达式   0/2 * * * * ?
    zone    cron表达时解析使用的时区,默认为服务器的本地时区。
    使用java.util.TimeZone#getTimeZone(String)方法解析
    GMT-8:00
    fixedRate固定速率
    上一次任务执行开始到下一次执行开始的间隔时间固定,单位为ms。
    若在调度任务执行时,上一次任务还未执行完毕,会加入worker队列,等待上一次执行完成后,马上执行下一次任务
    1000
    fixedRateString与fixedRate一致,只是间隔时间使用java.time.Duration#parse解析1000或PT1S
    fixedDelay固定延迟
    上一次任务执行结束到下一次执行开始的间隔时间固定,单位为ms。
    1000
    fixedDelayString与fixedDelay一致,只是间隔时间使用java.time.Duration#parse解析1000或PT1S
    initialDelay首次延迟多长时间后执行,单位ms。
    之后按照fixedRate、fixedRateString、fixedDelay、fixedDelayString指定的规则执行,需要指定其中一个规则。
    注意:不能和cron一起使用
    1000
    initialDelayString与initialDelay 一致,只是间隔时间使用java.time.Duration#parse解析1000或PT1S



     

  • 相关阅读:
    从零开始搭建spring boot多模块项目
    华为云HECS云服务器docker环境下安装nginx
    MYSQL的多版本并发控制MVCC(Multi-Version Concurrency Control)
    小波相干性显著性检验(MATLAB R2018A)
    javascript注册表单与验证,然后弹出错误信息,3秒后自动消失
    【已解决】AttributeError: module ‘torch.jit‘ has no attribute ‘_script_if_tracing‘
    Dubbo基本结构及执行流程
    糖尿病患者应注意避免低血糖现象的出现。
    大专毕业,从6个月开发转入测试岗位的一些感悟——写在测试岗位3年之际
    Qt系列-常用控件使用整理
  • 原文地址:https://blog.csdn.net/qq493820798/article/details/126303585