当前位置: 首页 > news >正文

Springboot 定时任务cron表达式

Cron表达式是一个强大的字符串,用于在Unix/Linux系统中配置cron job(计划任务)的时间表。然而,在Spring框架(包括Spring Boot)中,Cron表达式也被广泛使用于@Scheduled注解中,以定义定时任务的执行计划。

Cron表达式由六或七个空格分隔的时间字段组成,分别表示:

  1. 秒(0-59)(Spring的@Scheduled支持秒字段,而传统的Unix/Linux cron作业不支持)
  2. 分(0-59)
  3. 小时(0-23)
  4. 日(1-31)
  5. 月(1-12 或 JAN-DEC)
  6. 星期(0-7 或 SUN-SAT,其中0和7都代表星期日)
  7. 年(可选字段,留空或1970-2099)(注意:并非所有的cron实现都支持年字段)

每个字段都可以包含特定的值、范围、列表或通配符(*),来定义任务的执行时间。

示例

  • 0 0 8 * * ?:每天上午8点触发
  • 0 15 10 ? * *:每天上午10:15触发
  • 0 0/5 14 * * ?:在每天下午2点到2:59期间的每5分钟触发
  • 0 0/30 8-10 ? * *:在每天上午8点、8:30、9点、9:30、10点和10:30触发
  • 0 0 8-10 ? * MON-FRI:仅在工作日(星期一至星期五)的上午8点到10点期间的每小时的开始时刻触发
  • 0 0 8 ? * 6L:在每个月的最后一个星期六的上午8点触发
  • 0 0 8-10 ? * L-2:在每个月的最后两天(即倒数第二天和最后一天)的上午8点到10点期间的每小时的开始时刻触发

注意事项

  • 在Spring的@Scheduled注解中使用Cron表达式时,不需要考虑系统的时区设置,因为它默认使用Spring容器的时区。
  • Cron表达式中的星期字段(第6个字段)中的0和7都代表星期日,这可能会引起混淆。
  • 并非所有的cron实现都支持秒字段或年字段。然而,在Spring的@Scheduled注解中,秒字段是支持的。
  • Cron表达式的解析和调度是由Spring的TaskScheduler接口的实现(如ThreadPoolTaskScheduler)来完成的,因此它提供了比传统Unix/Linux cron作业更灵活和强大的功能。

最后,要记得在Spring Boot应用中使用@EnableScheduling注解来启用定时任务的支持。


http://www.mrgr.cn/news/8776.html

相关文章:

  • GoWeb 设置别名和多环境配置
  • 动手学深度学习(pytorch)学习记录15-正则化、权重衰减[学习记录]
  • Flat Ads:全球金融应用现状与发展趋势深度解析
  • RocketMQ 与 Spring Cloud Stream之事务消息配置
  • 【Vue】计算属性和监听属性
  • springdatajpa解决postgresql数据库字段驼峰命名问题
  • C++系列-多态的基本语法
  • repo的patch转换成git am能打的patch
  • 数据结构:(OJ题力扣 20). 有效的括号
  • 怎样写好提示词(Prompt) 一
  • CyberScraper-2077+simple-one-api:使用大模型爬虫
  • Xv6驱动(一):PLIC
  • 51单片机——数码管控制
  • linux驱动:(16)在设备树添加自定义节点
  • 23次8.7(mysql主从脚本与mysql详细语句介绍)
  • Linux 终端显示 Git 当前所在分支
  • RabbitMQ安装 docker
  • 【Redis】Redis 持久化 -- RDB AOF
  • 层次分析法
  • 【设计模式】模板方法模式和迭代器模式