spring boot系列4-定时任务-springboot自带的scheduled超级简单

猿份哥 1年前 ⋅ 546 阅读 ⋅ 0 个赞

需求:创建一个每天凌晨0点执行的定时任务
1.创建任务

/**
 * @author 天空蓝蓝的
 */
@Slf4j
@EnableScheduling
@Component
public class MyTask {
    @Async
    @Scheduled(cron = "0 0 0 * * ?")
    public void delEveryDay() throws SchedulerException, InterruptedException {
        log.info("每天凌晨0点开始执行任务");
        //业务代码
 
    }
}


@EnableScheduling  启用定时任务,可以添加到Application类上 ,此处添加到MyTask类上。

@Scheduled 添加到方法上 ,表示要执行的方法

@Async 并行执行(异步的),如果想串行执行无需添加

cron表示执行的条件,此处为每天凌晨0点执行

2.Application入口类

@SpringBootApplication
@EnableAsync
public class Start {
    public static void main(String[] args) {
        SpringApplication.run(Start.class, args);
    }
}


@EnableAsync 开启并行执行(异步的),如果想串行执行无需开启

3. 扩展
此外我们还可以这样实现定时任务
例如我们想5秒执行一次任务,代码如下

    @Scheduled(fixedDelay = 5000)
    public void towTask(){
        System.out.println("5秒后执行定时任务1");
    }


4.项目经验温馨提醒

我们在创建spring的定时任务需要遵循这些规则否则定时任务不会生效

1.类需要使用@Component注解

2.定时任务方法需要注解@Scheduled并且方法不能有返回值和参数
 源码下载链接: https://github.com/tiankonglanlande/springboot


全部评论: 0

    我有话说:

    Spring Boot系列5-定时任务-springboot整合quartz实现动态定时任务

    MyJob实现Job接口,重写execute方法在里面操作我们要执行业务逻辑。 @Slf4j public class MyJob implements Job { @Autowired

    Spring Boot系列1-helloword

      使用springboot简单轻松创建helloword SpringBoot系列1-helloword 关于springboot这是摘自官方一段话 Spring Boot

    Spring Boot系列7-SpringBoot+mybatis+druid+TypeHandler

    介绍在SpringBoot中集成mybatis和druid以及定义TypeHandler 创建数据库表 SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS = 0; -- --------------------...

    Spring Boot系列6-SpringBoot中使用servlet

    介绍在SpringBoot中如何使用servlet pom.xml <dependency> <groupId>org.springframework.boot<

    我向20k+以上java高级开发工程师提了那些面试问题

    暂无回答 2.spring Boot中如何定义...

    SpringBoot系列9-使用jasypt定义stater运行时动态传入加密密码

    文章目录 1.新建springboot-encryption-configuration项目实现stater 2.pom文件引入jasypt 3.在resources/support/下配置

    spring boot面试题及答案持续更新中

    2019-07-28最新整理spring boot面试题及答案 1.Spring Boot是什么 这是摘自官方一段话 Spring Boot is designed to get you up

    SpringBoot系列16-Spring boot2x快速整合swagger2(Open Api3注解版)

    前言:为什么要使用swagger 传统web开发,前端和后端HTTP接口文档交互都是使用word文档记录,存在不仅限于这些问题;不能时时更新,不易于传输etc. swagger2可以使用配置文件

    ...jar中没有主清单属性, spring boot或者spring cloudmaven项目 java -jar test.jar 方式启动报错:...jar中没有主清单属性

    1.spring boot或者spring cloudmaven项目老是遇到问题...jar中没有主清单属性 2.解决方法:在pom.xml中添加如下代码 <build> <

    Spring Boot系列8-使用jasypt加密配置文件内容简单

    文章目录 1.为什么配置文件需要加密 2.首先引入pom依赖文件 3.在application.properties或者application.yml文件中配置加密密码 4.获取加密内容例如:我想

    Spring Boot应用或SpringCloud程序设置端口号几种方式

    前言:springboot项目每个应用都需要设置端口号,如何设置端口号呢?主要有以下这几种方式 1.通过配置文件设置: (1)在/src/main/resources/路径下

    SpringBoot系列15-mysql-multiple-data-sources1

    springboot 多数据源一个简单示例 多数据源分包加载 新建数据库test1和表tbl_user CREATE TABLE `tbl_user` ( `id` int(11) NOT

    Spring Boot系列2-全局统一异常处理

    原创: 天空和唯美 天空唯美  点击查看原文 为什么要全局统一异常处理呢?如果系统发生了异常,不做统一异常处理,前端会给用户展示一大片看不懂文字。做统一异常处理后当

    springboot1.5.9升级到springboot2.1.3遇到问题

    1.问题描述: Failed to bind properties under 'spring.datasource.druid.driver' to java.sql.Driver:  

    如果SpringBoot与SpringCloud老是出各种问题,别急!请看下面SpringBoot与SpringCloud版本对应详细版

    1.问题 当我们在开发微服务时候因为SpringBoot和SpringCloud这两兄弟版本没有对应好老是出现各种各样问题。特别苦逼!别急,往下看!遇到就是缘分,我叫猿份哥! 2.原因

    加入公众号
    加入公众号