Spring Boot 定时任务实现

1 开启springboot的定时任务

    使用注解@EnableScheduling开启,代码:

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.scheduling.annotation.EnableScheduling;

@SpringBootApplication
@EnableScheduling
public class JobApplication {

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

2 创建定时任务

   创建一个定时任务类,该类要求加上@Service 或者 @Component 注解让框架容器管理。

import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Service;

@Service
public class MyScheduledTask {

    @Scheduled(fixedRate = 5000) // 每隔5秒执行一次
    public void myTask() {
        System.out.println("定时任务执行:" + System.currentTimeMillis());
        // 这里是任务逻辑
    }

    //每1分钟运行一次
    @Scheduled(cron = "0 0/1 * * * ?")
    public void task() {
    // 执行任务
    }
}

注意,以上定时任务执行是同步执行的,即假设在一个定时执行任务时间中,而另一个定时任务到了时间也不会运行。

3 开启springboot异步定时任务

  需用到 @EnableAsync 注解开启异常定时任务

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.scheduling.annotation.EnableScheduling;

@SpringBootApplication
@EnableAsync
public class JobApplication {

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

4 创建异步定时任务

   需要用到@Async注解,如代码:

import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Service;

@Service
public class MyScheduledTask {

    @Async
    @Scheduled(fixedRate = 5000) // 每隔5秒执行一次
    public void myTask() {
        System.out.println("定时任务执行:" + System.currentTimeMillis());
        // 这里是任务逻辑
    }

    //每1分钟运行一次
    @Async
    @Scheduled(cron = "0 0/1 * * * ?")
    public void task() {
    // 执行任务
    }
}

相关推荐

  1. SpringBoot 实现定时任务

    2023-12-23 15:56:01       59 阅读
  2. SpringBoot实战定时任务

    2023-12-23 15:56:01       26 阅读
  3. 使用SpringBoot实现定时任务

    2023-12-23 15:56:01       44 阅读
  4. springboot定时任务

    2023-12-23 15:56:01       64 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-23 15:56:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-23 15:56:01       101 阅读
  3. 在Django里面运行非项目文件

    2023-12-23 15:56:01       82 阅读
  4. Python语言-面向对象

    2023-12-23 15:56:01       91 阅读

热门阅读

  1. 使用 Qt API 获取串口信息

    2023-12-23 15:56:01       55 阅读
  2. LeetCode347. Top K Frequent Elements

    2023-12-23 15:56:01       46 阅读
  3. 安卓7.1修改app运行时最大内存

    2023-12-23 15:56:01       63 阅读
  4. 敏捷开发中的用户故事写作指南

    2023-12-23 15:56:01       62 阅读
  5. 58 回溯算法求组合问题

    2023-12-23 15:56:01       55 阅读
  6. 【ET8框架入门】5.YooAsset和HybridCLR篇

    2023-12-23 15:56:01       63 阅读
  7. 【UML】第11篇 类图(6种关系)(3/3)

    2023-12-23 15:56:01       62 阅读
  8. js 现在的时间距离本月月底的倒计时(html)

    2023-12-23 15:56:01       62 阅读
  9. 速盾网络:sdk游戏盾有什么作用?

    2023-12-23 15:56:01       58 阅读
  10. vue3+Ts

    vue3+Ts

    2023-12-23 15:56:01      67 阅读
  11. vue常用的指令

    2023-12-23 15:56:01       53 阅读