springboot引入定时任务


springboot引入定时任务主要需要以下几步:
1.引入相关的依赖
2.配置程序开启定时任务
3. 编写定时任务

引入相关的依赖

只用引一个基础的web的依赖就可以了

        <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-web --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><version>2.2.1.RELEASE</version></dependency>

配置程序开启定时任务

只需要在Springboot的Main函数的那个类上加个注解就可以了

package com.jd;/*** 只需要在这里面加上一个@EnableScheduling这个注解就可以了*/
@SpringBootApplication
@EnableScheduling
public class Demo {public static void main(String[] args) {SpringApplication.run(Demo.class, args);}
}

编写定时任务
一般定时任务都会放在task包下面,代码如下:

package com.jd;@Component
public class TestTask {/*** 定时任务的类和别的springBean没什么区别* 方法上要加@Scheduled,里面写定时的cron表达式*/@Scheduled(cron = "0/5 * * * * *")public void testSchedule(){System.out.println(new Date());System.out.println("这个是每5秒执行一次");}
}

结果展示:


常用的cron表达式

对于cron表达式不太熟悉的同学,可以去这个在线网站进行生成https://qqe2.com/cron
cron表达式是从后往前读的,遇到 * 就读每XX, 遇到数字就读 从第XX开始, 遇到 / 就读每隔多XX最后加个执行
如上述DEMO中

cron = "0/5 * * * * *"

每星期,每年,每月,每天,每小时,每分钟,从第0秒开始每隔5秒执行一次
以此类推,有以下常用表达式:
每隔10分钟执行一次:0 0/10 * * * *
每天18点执行一次:0 0 18 * * *
每月1号凌晨3点执行一次:0 0 3 1 * *

DEMO总评

定时任务这块,一般小项目会这样去写,在实际生产中,会使用分布式定时任务框架去集中配置,不会分散在各个应用里面,主要的难点在于cron表达式,不好写,需要多总结,才能写出对的cron表达式

springboot配置定时任务及常用的cron表达式相关推荐

  1. Spring定时任务@Scheduled注解使用配置方式(cron表达式、fixedRate和fixedDelay)

    Spring定时任务@Scheduled注解使用配置方式(cron表达式.fixedRate和fixedDelay) 序言: 个人推荐一个很方便的在线Cron生成器(网页版):https://qqe2 ...

  2. linux定时任务重复率,基于SpringBoot实现定时任务的设置(常用:定时清理数据库)...

    1.构建SpringBoot工程项目 1)创建一个Springboot工程,在它的程序入口加上@EnableScheduling,开启调度任务. @SpringBootApplication @Ena ...

  3. Spring定时任务@Scheduled注解使用方式浅窥(cron表达式、fixedRate和fixedDelay)

    1.开篇 spring的@Scheduled定时任务相信大家都是十分熟悉.最近在使用过程中发现了一些问题,写篇文章,和大家分享一下.结论在最后,不想看冗长过程的小伙伴可以直接拉到最后看结论. 2.简单 ...

  4. SpringBoot 实战定时任务 Scheduled

    序言 使用SpringBoot创建定时任务非常简单,目前主要有以下三种创建方式: 一.基于注解(@Scheduled) 二.基于接口(SchedulingConfigurer) 前者相信大家都很熟悉, ...

  5. SpringBoot实现定时任务的三种方式,总有一款适合你!

    点击关注公众号,利用碎片时间学习 序言 SpringBoot创建定时任务,目前主要有以下三种实现方式: 基于注解(@Scheduled): 基于注解@Scheduled默认为单线程,开启多个任务时,任 ...

  6. java获取mysql数据定时执行_详解SpringBoot 创建定时任务(配合数据库动态执行)...

    序言:创建定时任务非常简单,主要有两种创建方式:一.基于注解(@Scheduled) 二.基于接口(SchedulingConfigurer). 前者相信大家都很熟悉,但是实际使用中我们往往想从数据库 ...

  7. 一篇文章搞定,SpringBoot 创建定时任务

    作者:yizhiwazi 链接:https://www.jianshu.com/p/d160f2536de7 序言:创建定时任务非常简单,主要有两种创建方式: 一.基于注解(@Scheduled) 二 ...

  8. (转)Java任务调度框架Quartz入门教程指南(四)Quartz任务调度框架之触发器精讲SimpleTrigger和CronTrigger、最详细的Cron表达式范例...

    http://blog.csdn.net/zixiao217/article/details/53075009 Quartz的主要接口类是Schedule.Job.Trigger,而触发器Trigge ...

  9. Spring Boot配置定时任务

    SpringBoot配置定时任务可以直接使用自带的Scheduled,这相当于一个轻量级的Quartz,它可以让我们直接使用注解来完成定时任务的配置. @Configuration @EnableSc ...

最新文章

  1. 分布式存储系统的关键技术-针对应用和负载的存储优化技术
  2. 令人郁闷的discuz!个人空间过滤机制
  3. 全球及中国天然肠衣行业投资盈利分析及竞争格局展望报告2022-2027年
  4. mysql分区-索引
  5. 华为云计算玉溪总经理_华为云计算(6)——FusionAccess
  6. iOS 本地化应用程序汇总 国际化
  7. 《 Docker 技术入门与实战 》读书笔记 ( CentOS 安装 Docker )
  8. 25岁,一位女程序员的幸运几年
  9. Nginx+tomcat+memcached缓存共享session
  10. 谈谈有什么方法可以快捷实现多场景下的线程安全
  11. C++之explicit探究
  12. mac下载的api文档怎么_Python调用百度API实现语音识别(二)
  13. 占内存小的android浏览器,一点浏览器占内存吗 世界最小浏览器使用评测
  14. 【公告】CSDN 博客将进行数据库维护
  15. 设置windows补丁自动更新指向固定服务器
  16. 《D o C P》学习笔记(3 - 0)Regular Expressions, other languages and interpreters - 简介
  17. MATLAB实现红眼消除(数字图像处理)
  18. Hybrid端口的工作原理
  19. 网络安全-网站后台的寻找+网页JS文件信息收集
  20. vSphere ESXI配置多网卡链路聚合模式

热门文章

  1. 三层交换(VLAN间互通+路由功能)+VTP+STP(PVST)综合实验(理论+实践=真实)
  2. 新增Skin-watercolor
  3. C++debug调试出现heap corruption detected: after normal block 可能的原因
  4. 洛谷 - P4721 【模板】分治 FFT(分治NTT)
  5. HDU多校4 - 6988 Display Substring(后缀自动机+二分)
  6. 中石油训练赛 - Trading Cards(最大权闭合子图)
  7. POJ - 3683 Priest John's Busiest Day(2-SAT+路径打印)
  8. mysql分表组件_利用Sharding-Jdbc组件实现分表
  9. 自学Java5.19
  10. Lua table(表)