SpringBoot 调度任务及常用任务表达式

1.首先需要用@EnableScheduling注解到*applicatin.java,用来检测是否有调度任务。

2.@Scheduled 注解用于标注这个方法是一个定时任务的方法。Spring会自动扫描这个注解,启动调度任务。

package com.david.translate.quartz;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import com.david.translate.service.SysUserService;
@Component
public class TimeQuartz {
  @Autowired
  private SysUserService userService;
  /**
   * 一分钟执行一次
   */
  @Scheduled(cron="0 0/1 * * * ?")
  public void executeFileDownLoadTask() {
    System.out.println(">>>>>>>>>>>>>>>>>>>任务执行 "+userService.findAll().size());
  }
}

调度任务的时间配置用的是cron表达式,推荐一个在线生成表达式的网站,如果自己不会写或者不愿意自己写,可以用这个网站直接生成:

http://cron.qqe2.com/

截图如下:

一些常用的任务表达式 例子:

0 * * * * ? 每1分钟触发一次
0 0 * * * ? 每天每1小时触发一次
0 0 10 * * ? 每天10点触发一次
0 * 14 * * ? 在每天下午2点到下午2:59期间的每1分钟触发
0 30 9 1 * ? 每月1号上午9点半
0 15 10 15 * ? 每月15日上午10:15触发

/5 * * * ? 每隔5秒执行一次
0 /1 * * ? 每隔1分钟执行一次
0 0 5-15 * * ? 每天5-15点整点触发
0 0/3 * * * ? 每三分钟触发一次
0 0-5 14 * * ? 在每天下午2点到下午2:05期间的每1分钟触发
0 0/5 14 * * ? 在每天下午2点到下午2:55期间的每5分钟触发
0 0/5 14,18 * * ? 在每天下午2点到2:55期间和下午6点到6:55期间的每5分钟触发
0 0/30 9-17 * * ? 朝九晚五工作时间内每半小时
0 0 10,14,16 * * ? 每天上午10点,下午2点,4点

0 0 12 ? * WED 表示每个星期三中午12点
0 0 17 ? * TUES,THUR,SAT 每周二、四、六下午五点
0 10,44 14 ? 3 WED 每年三月的星期三的下午2:10和2:44触发
0 15 10 ? * MON-FRI 周一至周五的上午10:15触发

0 0 23 L * ? 每月最后一天23点执行一次
0 15 10 L * ? 每月最后一日的上午10:15触发
0 15 10 ? * 6L 每月的最后一个星期五上午10:15触发

0 15 10 * * ? 2005 2005年的每天上午10:15触发
0 15 10 ? * 6L 2002-2005 2002年至2005年的每月的最后一个星期五上午10:15触发
0 15 10 ? * 6#3 每月的第三个星期五上午10:15触发

总结

以上所述是小编给大家介绍的SpringBoot 调度任务及常用任务表达式,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!

(0)

相关推荐

  • 详解Spring Boot 定时任务的实现方法

    最近在用SpringBoot写一个关于定时项目的时候遇到一个问题,就是客户端访问服务器的结果实际上是每个一段时间发生一次变化,并且在服务器在每天的某个固定的时间点都要触发一次事件. 我们当然可以在遇到每一个请求时都重新计算结果,但是为了提高效率,我们显然可以让服务器每隔一段时间计算一次结果,并且把这个结果进行保存,对在下一个时间段内的每个请求都直接返回计算后的结果.这样就能较好的提高了服务器的性能. 那么问题就在于如何处理定时任务.其实SpringBoot早就提供了非常方便的接口,但是网上的介绍

  • SpringBoot定时任务两种(Spring Schedule 与 Quartz 整合 )实现方法

    前言 最近在项目中使用到定时任务,之前一直都是使用Quartz 来实现,最近看Spring 基础发现其实Spring 提供 Spring Schedule 可以帮助我们实现简单的定时任务功能. 下面说一下两种方式在Spring Boot 项目中的使用. Spring Schedule 实现定时任务 Spring Schedule 实现定时任务有两种方式 1. 使用XML配置定时任务, 2. 使用 @Scheduled 注解. 因为是Spring Boot 项目 可能尽量避免使用XML配置的形式,

  • 详解Spring-Boot中如何使用多线程处理任务

    看到这个标题,相信不少人会感到疑惑,回忆你们自己的场景会发现,在Spring的项目中很少有使用多线程处理任务的,没错,大多数时候我们都是使用Spring MVC开发的web项目,默认的Controller,Service,Dao组件的作用域都是单实例,无状态,然后被并发多线程调用,那么如果我想使用多线程处理任务,该如何做呢? 比如如下场景: 使用spring-boot开发一个监控的项目,每个被监控的业务(可能是一个数据库表或者是一个pid进程)都会单独运行在一个线程中,有自己配置的参数,总结起来

  • 详解Spring Boot中使用@Scheduled创建定时任务

    我们在编写Spring Boot应用中经常会遇到这样的场景,比如:我需要定时地发送一些短信.邮件之类的操作,也可能会定时地检查和监控一些标志.参数等. 创建定时任务 在Spring Boot中编写定时任务是非常简单的事,下面通过实例介绍如何在Spring Boot中创建定时任务,实现每过5秒输出一下当前时间. 在Spring Boot的主类中加入@EnableScheduling注解,启用定时任务的配置 @SpringBootApplication @EnableScheduling publi

  • SpringBoot 调度任务及常用任务表达式

    1.首先需要用@EnableScheduling注解到*applicatin.java,用来检测是否有调度任务. 2.@Scheduled 注解用于标注这个方法是一个定时任务的方法.Spring会自动扫描这个注解,启动调度任务. package com.david.translate.quartz; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.schedulin

  • springboot中一些比较常用的注解总结

    springboot常用注解 1.@SpringBootApplication 这个注解是Spring Boot最核心的注解,用在 Spring Boot的主类上,标识这是一个 Spring Boot 应用,用来开启 Spring Boot 的各项能力.实际上这个注解是@Configuration,@EnableAutoConfiguration,@ComponentScan三个注解的组合.由于这些注解一般都是一起使用,所以Spring Boot提供了一个统一的注解@SpringBootAppl

  • springboot启动过程中常用的回调示例详解

    目录 1.介绍 2.常用的拓展接口 3.实例: 4.其他拓展接口: 1.介绍 springboot提供非常丰富回调接口,利用这些接口可以做非常多的事情,对于一些常用的回调接口进行介绍 2.常用的拓展接口 1.ApplicationContextInitializer2.ApplicationListener3.ApplicationRunner4.CommandLineRunner 3.实例: 1.ApplicationContextInitializer接口是在spring容器初初始化之前调用

  • SpringBoot实现WEB的常用功能案例详解

    目录 前言 SpringMVC整合支持 Spring MVC自动配置 项目基础环境搭建 功能扩展实现 Spring MVC功能扩展实现 Spring整合Servlet三大组件 使用注册方式整合 使用组件注册方式整合Servlet 使用组件注册方式整合Filter 使用组件注册方式整合 Listener 文件上传与下载 文件上传 编写上传表单界面 编写控制器 文件下载 添加依赖 下载处理控制器 编写前端代码 SpringBoot的打包部署 jar包形式打包 启动jar包 war包形式打包 war包

  • SpringBoot整合Redis实现常用功能超详细过程

    目录 1 登陆功能 1.1 基于Session实现登录流程 1.1.1 session共享问题 1.2 Redis替代Session 1.2.1.设计key的结构 1.2.2.设计key的具体细节 1.2.3.整体访问流程 2 缓存功能 2.1 什么是缓存? 2.1.1 为什么要使用缓存 2.1.2 如何使用缓存 2.2.使用缓存 2.2.1 .缓存模型和思路 2.3 缓存更新策略 2.3.1 .数据库缓存不一致解决方案: 2.3.2 .数据库和缓存不一致采用什么方案 2.4 缓存穿透问题的解决

  • SpringBoot Controller中的常用注解

    目录 概述 常用注解简介 1.@Controller 2.@RestController 3.@RequestMapping 4.@RequestBody 5.@RequestParam 6.@PathVariable 总结 概述 Controller是Spring接受并处理网页请求的组件,是整个应用的入口,因此学会Controller的常用注解对理解一个应用是重中之重.SpringBoot的Controller中经常会用到注解@Controller.@RestController.@Reque

  • 详解springboot中使用异步的常用两种方式及其比较

    一般对于业务复杂的流程,会有一些处理逻辑不需要及时返回,甚至不需要返回值,但是如果充斥在主流程中,占用大量时间来处理,就可以通过异步的方式来优化. 实现异步的常用方法远不止两种,但是个人经验常用的,好用的,这里我就说两种,最好用的是第二种. spring的注解方式@Async org.springframework.scheduling.annotation.Async jdk1.8后的CompletableFuture java.util.concurrent.CompletableFutur

  • springBoot整合rabbitmq测试常用模型小结

    目录 1.添加依赖 2.编写配置 3.编写并测试 之前我们记录了原生java代码使用rabbitmq的方法,很简单,类似于原生jdbc代码一样,将连接对象抽离出来作为工具类,生产者和消费者通过工具类获取连接对象,进而获取通道对象,再注册交换机或者是队列等,发送消息与接收消息.在企业开发中,我们更多的是使用spring框架来整合其它技术,springboot更是方便的提供了各种starter来快速添加依赖,完成整合,开箱即用. 1.添加依赖 <dependency> <groupId>

  • java常用Lambda表达式使用场景源码示例

    目录 引导语 1.数据准备 2.常用方法 2.1.Filter 2.2.map 2.3.mapToInt 2.4.flatMap 2.5.distinct 2.6.Sorted 2.7.peek 2.8.limit 2.9.reduce 2.10.findFirst 2.11.groupingBy&&toMap 3.总结 引导语 我们日常工作中,Lambda 使用比较多的场景,就是 List 或 Map 下的 Lambda 流操作,往往几行代码可以帮助我们实现多层 for 循环嵌套的复杂代

  • Mybatis中的常用OGNL表达式

    目录 Mybatis常用的OGNL表达式如下 Mybatis jstl表达式 在Mybatis的动态SQL和${}形式的参数中都用到了OGNL表达式. Mybatis常用的OGNL表达式如下 1.e1 or e2:或 <if test="userEmail != null or userEmail == '1'"> </if> 2.e1 and e2:且 <if test="userEmail != null and userEmail != '

随机推荐