在开触发器时,会自动开启一个线程处理任务。不用担心和主程序的阻塞问题,但需注意任务之间的阻塞问题,如果是异步则会为每个任务都开启,无需担心任务之间的阻塞问题。

  1. 在spring-boot启动类上添加@EnableScheduling注解,代表开启定时器,图1。
  2. 单纯只做一个任务且项目启动时就开始或者延时一段时间开始,在需要做任务的类上添加@Component注解,让spring-boot扫码组件,在方法上注解@Scheduled(initialDelay = 1000,fixedDelay = 2000)第一个参数是延迟多久开始,第二个参数是间隔多久执行一次,图2。
  3. 如果有多个任务执行,可能需要开线程执行任务,这时只需在任务类上多加一个@EnableAsync注解和任务方法上@Async即可,图3。
  4. 需要指定时间启动,在任务方法上加@Scheduled(cron = "0,5 6/1 18 10 8 2")即可,再根据需要写cron表达式。其中
    依次是秒 分 时 天 月 星期(1代表星期1,2代表星期2)
    ","代表这个和这个都要执行
    "/“代表左边这个时间开始,每隔”/"右边的数就执行一次,代表通配,什么都执行
    全都为"
    "时,就没过1s执行一次
    这是spring的只有6个域,图4。

图1,启动类添加注解

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

图2,单个任务,当两个任务同时时,会等待前一个执行完再执行

@Component
public class NoThread {@Scheduled(initialDelay = 1000,fixedDelay = 2000)public void pt(){try {Thread.sleep(5000);} catch (InterruptedException e) {e.printStackTrace();}System.out.println("我是pt");}@Scheduled(initialDelay = 1000,fixedDelay = 2000)public void pt1(){try {Thread.sleep(5000);} catch (InterruptedException e) {e.printStackTrace();}System.out.println("我是pt1");}
}

图3,也是两个任务同时进行,但是采用异步,不用等待前一个执行就可执行

@EnableAsync
@Component
public class Threads {@Async@Scheduled(initialDelay = 1000,fixedDelay = 2000)public void pt(){try {Thread.sleep(5000);} catch (InterruptedException e) {e.printStackTrace();}System.out.println("我是pt2");}@Async@Scheduled(initialDelay = 1000,fixedDelay = 2000)public void pt1(){try {Thread.sleep(5000);} catch (InterruptedException e) {e.printStackTrace();}System.out.println("我是pt3");}
}

图4,有定时需求启动时采用,下面的cron代表8月10号周2的下午17点42分0秒和5秒开始输出一次,且开始每过1分钟继续执行

@EnableAsync
@Component
public class cron {//依次是秒 分 时 天 月 星期(1代表星期1,2代表星期2)// ","代表这个和这个都要执行// "/"代表左边这个时间开始,每隔"/"右边的数就执行一次,*代表通配,什么都执行// 全都为"*"时,就没过1s执行一次@Scheduled(cron = "0,5 42/1 17 10 8 2")@Asyncpublic void pt4(){System.out.println("我是pt4");}
}

spring-boot触发器使用相关推荐

  1. Spring Boot 整合 Quartz 实现 Java 定时任务的动态配置

    点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 首先说下这次主题,动态配置.没接触过定时任务的同学可以先看 ...

  2. Spring Boot 2.0 热部署指南

    Spring Boot 2.0 支持热部署,实现方法很简单 Spring Boot 2.0 有几种热重载的选项. 推荐的方法是使用spring-boot-devtools 因为它提供了额外的开发时间功 ...

  3. Spring Boot定时任务应用实践

    在Spring Boot中实现定时任务功能,可以通过Spring自带的定时任务调度,也可以通过集成经典开源组件Quartz实现任务调度. 一.Spring定时器 1.cron表达式方式 使用自带的定时 ...

  4. Spring Boot中使用PostgreSQL数据库

    在如今的关系型数据库中,有两个开源产品是你必须知道的.其中一个是MySQL,相信关注我的小伙伴们一定都不陌生,因为之前的Spring Boot关于关系型数据库的所有例子都是对MySQL来介绍的.而今天 ...

  5. Spring Boot Serverless 实战系列“架构篇” | 光速入门函数计算

    作者 |:西流(阿里云函数计算专家) Spring Boot 是基于 Java Spring 框架的套件,它预装了 Spring 一系列的组件,开发者只需要很少的配置即可创建独立运行的应用程序. 在云 ...

  6. 在Spring Boot中使用内存数据库

    文章目录 H2数据库 HSQLDB Apache Derby SQLite 在Spring Boot中使用内存数据库 所谓内存数据库就是可以在内存中运行的数据库,不需要将数据存储在文件系统中,但是相对 ...

  7. Spring Boot Serverless 实战系列“架构篇” 首发 | 光速入门函数计算

    简介:如何以 Serverless 的方式运行 Spring Boot 应用? 作者 | 西流(阿里云函数计算专家) Spring Boot 是基于 Java Spring 框架的套件,它预装了 Sp ...

  8. 使用 CODING 进行 Spring Boot 项目的集成

    本文作者:CODING 用户 - 高文 持续集成 (Continuous integration) 是一种软件开发实践,即团队开发成员经常集成他们的工作,通过每个成员每天至少集成一次,也就意味着每天可 ...

  9. @scheduled注解配置时间_Java开发重写Spring Boot定时任务,支持可动态调整执行时间...

    Spring Boot应该是目前最火的java开源框架了,它简化了我们创建一个web服务的过程,让我们可以在很短时间.基本零配置就可以启动一个web服务. 定时任务在我们平常的业务开发用的非常多,Sp ...

  10. spring boot集成Quartz实现定时任务

    简介 Quartz是一款功能强大的任务调度器,Quartz有两个比较核心的组件:Job 和 Trigger. Quartz的三个基本要素 Scheduler:调度器,所有的调度都是由它来控制. Tri ...

最新文章

  1. 精确微妙计时minicom 源码节选
  2. linux——grep、sed、awk整理及其比较
  3. pdf常用字体包 -baijiahao_如何给PDF文档添加和插入页码?
  4. VLSM(可变长子网掩码)图表
  5. Microsoft .Net Remoting系列专题之二
  6. Flutter 入门指北(Part 9)之弹窗和提示(SnackBar、BottomSheet、Dialog)
  7. TCP慢开始与拥塞避免
  8. java我的世界损坏的种子,我的世界:5分钟让你通关游戏的种子,大神用这种子破了世界纪录...
  9. 方法论 | 多因子策略的五大讨论(思维导图收藏版)
  10. office 打开时蹦出错误:无法读取源文件或磁盘
  11. Android 权限的一个类型系统模型
  12. 办公技巧:10个WORD神操作,值得收藏
  13. 路由器 三层交换机 网关有什么区别
  14. win7无损分区和硬盘分区调整合并
  15. vue 动态渲染图片 不出来
  16. 轻博客系统 doudangQb
  17. Hadoop原理 之 数据完整性
  18. 《扫黑风暴》全网爆火!用Python具体分析一下它怎么火起来的?你喜欢看吗?
  19. PPT提示缺少字体怎么解决?
  20. Windows系统编译GSL2.7用于C语言编程(2022.5.8)

热门文章

  1. 《信息安全保障》一1.2 信息安全保障概念与模型
  2. 时钟的时针、分针和秒针重合问题
  3. 弱电安防工程中的电线电缆基本只是
  4. 《深度学习》(美)Ian Goodfellow 花书简要笔记(第一部分:应用数学与机器学习基础)
  5. 海康威视-测试-面经(一面+hr面)
  6. t20天正建筑软件服务器为空,天正建筑T20常见问题(四)
  7. layui写弹出框显示表单信息_layui 弹出框提交表单
  8. 【Vue3tinymce】Vue3使用tinymce富文本编辑器
  9. 打印机打印列队中打印状态为错误的解决方式之一
  10. 基于MPC算法控制车辆的运动轨迹