定时任务

在线Cron表达式生成器: https://cron.qqe2.com/

一、SpringBoot自带的定时任务

解决:使用异步任务 + 定时任务来完成定时任务不阻塞的功能

  • 定时任务

    • 1、@EnableScheduling 开启定时任务 (可直接加在springboot启动类上)
    • 2、@Scheduled开启一个定时任务 (可直接加在需要定时任务的方法上,这个方法必须是注入容器中)
  • 异步任务

    • 1、@EnableAsync:开启异步任务 (可直接加在springboot启动类上)
    • 2、@Async:给希望异步执行的方法标注(可直接加在需要定时任务的方法上,这个方法必须是注入容器中)
  • cron表达式特点

    • 1、在Spring中表达式是6位组成,不允许第七位的年份
    • 2、在周几的的位置,1-7代表周一到周日
  • 特殊字符(,-*/LW#)

    • ,:枚举

      (cron=“7,9,23 * * * * ?”):任意时刻的 7,9,23 秒启动这个任务;

    • -:范围

      (cron=“7-20 * * * * ?”):任意时刻的 7-20 秒之间,每秒启动一次

    • *:任意

      指定位置的任意时刻都可以

    • /:步长

      (cron=“7/5 * * * * ?”):第 7 秒启动,每 5 秒一次;

      (cron="*/5 * * * * ?"):任意秒启动,每 5 秒一次;

    • ?:(出现在日和周几的位置):为了防止日和周冲突,在周和日上如果要写通配符使用?

      (cron="* * * 1 * ?"):每月的 1 号,启动这个任务;

    • L:(出现在日和周的位置), last:最后一个

      (cron="* * * ? * 3L"):每月的最后一个周二

    • W:Work Day:工作日

      (cron="* * * W * ?"):每个月的工作日触发

      (cron="* * * LW * ?"):每个月的最后一个工作日触发

    • #:第几个

      (cron="* * * ? * 5#2"):每个月的第 2 个周 4

  • 代码示例

    • 定时任务配置类

      import org.springframework.context.annotation.Configuration;
      import org.springframework.scheduling.annotation.EnableAsync;
      import org.springframework.scheduling.annotation.EnableScheduling;@EnableAsync      //开启异步任务
      @EnableScheduling //开启定时任务
      @Configuration
      public class ScheduledConfig {}
    • 业务执行带代码

      import org.springframework.scheduling.annotation.Scheduled;
      import org.springframework.stereotype.Service;@Service
      public class SeckillScheduled {// @Scheduled(cron = "*/5 * * * * ? ")@Scheduled(cron = "0 0 1/1 * * ? ")public void uploadSeckillSkuLatest3Days() {//调用service层方法 定时执行业务代码}
      }

二、SpringBoot集成Quartz

Spring定时任务(Cron表达式)相关推荐

  1. 定时任务Cron表达式学习

    有关定时任务Cron表达式的那些 背景:今天在做quartZ定时任务,发现了要用Cron表达式去指定出发的时间表. 1.CronTrigger CronTrigger,你可以指定触发的时间表如&quo ...

  2. spring定时任务cron为每季度第一个工作日转换为cron表达式

    最近系统有个需求,执行一个定时任务发送待办事项,一年有六次,分别为每季度第一个工作日.第二季度和第四季度结束后的第十个工作日,可头疼坏了 还好我们系统有个工作日表,于是思路就是先查询出每季度的第一天, ...

  3. Spring Boot定时任务-cron表达式

    其实cron表达式呢,其实就是一个基于字符串的,基于时间的一个定义格式,那我们就来看一下cron表达式语法的定义,cron表达式它是一个字符串的,并且在字符串当中呢,包含6个域或者7个域,然后每个域表 ...

  4. 定时任务 ||​​​​​​​​​​​​​​ Cron表达式

    Spring内置的Spring Task,这是Spring3.0加入的定时任务功能. 使用注解的方式定时启动爬虫进行数据爬取. 我们使用的是@Scheduled注解,其属性如下: 1)cron:cro ...

  5. 定时任务 cron 表达式详解

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. (Spring定时任务的几种实现:见博客另一页:http://blog.csdn.net/jiang ...

  6. java定时任务cron表达式每周执行一次的坑

    java springboot 利用schedule执行定时任务是很常用的功能,有一个很常用的网站就是在线Cron表达式生成器,但是在这个网站最近遇到一个坑. 我要每周四执行一次,我把我写的表达式在这 ...

  7. linux定时任务 - CRON表达式

    CRON 表达式是一个字符串,以 5 或 6 个空格隔开,分为 6 或 7 个域,每一个域代表一个含义. CRON 有如下两种语法格式: 秒 分 小时 日期 月份 星期 年 秒 分 小时 日期 月份 ...

  8. spring定时任务 cron的含义

    1.cron 表达式的定义 cron 表达式是一个字符串,该字符串由 6 个空格分为 7 个域,每一个域代表一个时间单位.格式如下: [秒] [分] [时] [日] [月] [周] [年] 通常定义 ...

  9. 定时任务cron表达式使用详解

    项目中有时会需要定时去触发一些任务,Java实现定时任务一般有三种方法: JDK自带的Timer以及JDK1.5+ 新增的ScheduledExecutorService: Quartz 定时器:简单 ...

最新文章

  1. OpenFace库(Tadas Baltrusaitis)中基于Haar Cascade Classifiers进行人脸检测的测试代码
  2. 17岁读大学,25岁博士毕业,高颜值医生爆红网络,却坦言只是普通人
  3. 遍历list、set、map和array
  4. PCIe学习笔记(15)--- TLP的ROUTING方式
  5. 前端学习(2714):重读vue电商网站34之侧边栏路由改造
  6. ENSP配置 实例七 DHCP配置
  7. 深度学习之神经网络的结构
  8. 什么是树(Tree),数据结构中一般有哪些树?
  9. php 5.3.29 怎么开启debug_PHP代码审计之环境安装(一)
  10. ai文件图片连接丢失怎么处理_未来美学丨点亮你的AI技能点(一)
  11. nodejs返回带图片的HTML页面,Nodejs实现简单的网页图片获取
  12. Java基础 -> 为什么⽤线程池?线程池的创建?
  13. Nokia Symbian PKG sis文件就会及时更新了
  14. phpStorm2018安装与破解(免安装打包版)
  15. 用c语言写成电脑计时小程序
  16. 2007经典搞笑警句
  17. matlab三相变压器,simulink三相变压器
  18. 《2020智慧屏白皮书》重磅发布 华为跨界引领电视行业革新
  19. 首创Domino前后端彻底分离,结合vue、react优美例子
  20. 怎么用计算机按反三角函数的导数,反三角函数求导过程

热门文章

  1. Introduction(英语笔记)
  2. 历史大讲堂:这是老古董 苹果第一代Macintosh详解
  3. BUAA程设第五周总结
  4. 【原创】SolidWorks曲面建模
  5. AB test实战(一)
  6. Python 是怎么火起来的?
  7. 如何彻底关闭 word 2010 万恶的“信息检索”?
  8. 图片批处理|必备小技能
  9. 怎样将CDR文件转换为PS分图层文件
  10. 2016年该如何理财