java的spring的quartz 时间配置相应字符串的说明与实例

本文源自:[url]http://js.sse6.cn/gzsgfrz/jszj/2010-02-02/1431.html[/url]


使用spring的quartz循环任务的时候,有一件事,一直让我很奇怪,哪就是相应的循环设置的字符串,网上收录了以下一篇文章,感觉说得比较清楚,自己记录一下,也方便以后参阅学习。
一个Cron-表达式是一个由六至七个字段组成由空格分隔的字符串,其中6个字段是必须的而一个是可选的,如下:
字段名 允许的值 允许的特殊字符
秒 0-59 , - * /
分 0-59 , - * /
小时 0-23 , - * /
日 1-31 , - * ? / L W C
月 1-12 or JAN-DEC , - * /
周几 1-7 or SUN-SAT , - * ? / L C #
年 (可选字段) empty, 1970-2099 , - * /


'*' 字符可以用于所有字段,在“分”字段中设为"*"表示"每一分钟"的含义。

'?' 字符可以用在“日”和“周几”字段. 它用来指定 '不明确的值'. 这在你需要指定这两个字段中的某一个值而不是另外一个的时候会被用到。在后面的例子中可以看到其含义。

'-' 字符被用来指定一个值的范围,比如在“小时”字段中设为"10-12"表示"10点到12点".

',' 字符指定数个值。比如在“周几”字段中设为"MON,WED,FRI"表示"the days Monday, Wednesday, and Friday".

'/' 字符用来指定一个值的的增加幅度. 比如在“秒”字段中设置为"0/15"表示"第0, 15, 30, 和 45秒"。而 "5/15"则表示"第5, 20, 35, 和 50". 在'/'前加"*"字符相当于指定从0秒开始. 每个字段都有一系列可以开始或结束的数值。对于“秒”和“分”字段来说,其数值范围为0到59,对于“小时”字段来说其为0到23, 对于“日”字段来说为0到31, 而对于“月”字段来说为1到12。"/"字段仅仅只是帮助你在允许的数值范围内从开始"第n"的值。 因此 对于“月”字段来说"7/6"只是表示7月被开启而不是“每六个月”, 请注意其中微妙的差别。

'L'字符可用在“日”和“周几”这两个字段。它是"last"的缩写, 但是在这两个字段中有不同的含义。例如,“日”字段中的"L"表示"一个月中的最后一天" —— 对于一月就是31号对于二月来说就是28号(非闰年)。而在“周几”字段中, 它简单的表示"7" or "SAT",但是如果在“周几”字段中使用时跟在某个数字之后, 它表示"该月最后一个星期×" —— 比如"6L"表示"该月最后一个周五"。当使用'L'选项时,指定确定的列表或者范围非常重要,否则你会被结果搞糊涂的。

'W' 可用于“日”字段。用来指定历给定日期最近的工作日(周一到周五) 。比如你将“日”字段设为"15W",意为: "离该月15号最近的工作日"。因此如果15号为周六,触发器会在14号即周五调用。如果15号为周日, 触发器会在16号也就是周一触发。如果15号为周二,那么当天就会触发。然而如果你将“日”字段设为"1W", 而一号又是周六, 触发器会于下周一也就是当月的3号触发,因为它不会越过当月的值的范围边界。'W'字符只能用于“日”字段的值为单独的一天而不是一系列值的时候。

'L'和'W'可以组合用于“日”字段表示为'LW',意为"该月最后一个工作日"。

'#' 字符可用于“周几”字段。该字符表示“该月第几个周×”,比如"6#3"表示该月第三个周五( 6表示周五而"#3"该月第三个)。再比如: "2#1" = 表示该月第一个周一而 "4#5" = 该月第五个周三。注意如果你指定"#5"该月没有第五个“周×”,该月是不会触发的。

'C' 字符可用于“日”和“周几”字段,它是"calendar"的缩写。 它表示为基于相关的日历所计算出的值(如果有的话)。如果没有关联的日历, 那它等同于包含全部日历。“日”字段值为"5C"表示"日历中的第一天或者5号以后",“周几”字段值为"1C"则表示"日历中的第一天或者周日以后"。

对于“月份”字段和“周几”字段来说合法的字符都不是大小写敏感的。

下面是一些完整的例子:
表达式 含义
"0 0 12 * * ?" 每天中午十二点触发
"0 15 10 ? * *" 每天早上10:15触发
"0 15 10 * * ?" 每天早上10:15触发
"0 15 10 * * ? *" 每天早上10:15触发
"0 15 10 * * ? 2005" 2005年的每天早上10:15触发
"0 * 14 * * ?" 每天从下午2点开始到2点59分每分钟一次触发
"0 0/5 14 * * ?" 每天从下午2点开始到2:55分结束每5分钟一次触发
"0 0/5 14,18 * * ?" 每天的下午2点至2:55和6点至6点55分两个时间段内每5分钟一次触发
"0 0-5 14 * * ?" 每天14:00至14:05每分钟一次触发
"0 10,44 14 ? 3 WED" 三月的每周三的14:10和14:44触发
"0 15 10 ? * MON-FRI" 每个周一、周二、周三、周四、周五的10:15触发
"0 15 10 15 * ?" 每月15号的10:15触发
"0 15 10 L * ?" 每月的最后一天的10:15触发
"0 15 10 ? * 6L" 每月最后一个周五的10:15触发
"0 15 10 ? * 6L" 每月最后一个周五的10:15触发
"0 15 10 ? * 6L 2002-2005" 2002年至2005年的每月最后一个周五的10:15触发
"0 15 10 ? * 6#3" 每月的第三个周五的10:15触发
数电实训:万年历 万年历 阅读详情

相关推荐

Springboot 使用Quartz定时器执行多个定时任务 配置

首先在开篇前,先放一个Springboot简单使用定时器的文章:https://blog.csdn.net/qq_35387940/article/details/82800403 以上这篇其实已经满足了大多数的情形,而且是使用注解的方式,非常简洁。 现在这篇是比较传统一点的,手动配置的方式: 定时任务配置包括 : jobDetail 任务实例 定时任务执行的具体内容......

默默不代表沉默 1万+

CronExpression一个cron表达式解析器

Cron Expression:一个cron表达式解析器

2026 拉勾网:JA4+指纹绕过 + sign逆向 + 动态城市参数,月采集10万+数据实战

2026年拉勾网反爬技术全面升级,采用JA4+ TLS指纹识别、动态sign签名等多维度防护体系。本文提供工业级爬虫解决方案,通过curl_cffi模拟浏览器指纹、逆向sign加密算法、动态生成城市参数三大核心技术,实现高效稳定的数据采集。系统采用分层架构设计,包含任务调度、签名生成、多线程引擎等模块,单月可获取10万+条招聘数据。重点解析了JA4+指纹识别原理、传统方法的局限性,以及通过HMAC-SHA256算法逆向sign参数的完整过程。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 2375

CronExpression 表达式详解

参数序号 参数名 是否可选 1 Seconds 否 2 Minutes 否 3 Hours 否 4 Day-of-Month 否 5 Month 否 6 Day-of-Week 否 7 Year 是 例如:"0 0 12 ? * WED" 在每星期三下午 12:00 执行 其中每个元素可以是一个值 (6),一个连续区间 (9-12),一个间隔时间(8-1...

EnskDeCode 2万+

Cron 表达式详解和案例

1. cron表达式格式: {秒数} {分钟} {小时} {日期} {月份} {星期} {年份(可为空)} 2. cron表达式各占位符解释: {秒数} ==> 允许值范围: 0~59 ,不允许为空值,若值不合法,调度器将抛出SchedulerException异常 "*" 代表每隔1秒钟触发; "," 代表在指定的秒数触发,比如"0,15,45"代表0秒、15秒和45秒...

weixin_30545285的博客 657

spring+quartz配置

一个Cron-表达式是一个由六至七个字段组成由空格分隔的字符串,其中6个字段是必须的而一个是可选的,如下: 字段名 允许的值 允许的特殊字符 秒 0-59 , - * / 分 0-59 , - * / 小时 0-23 , - * / 日 1-31 , - * ? / L W C 月 ...

lizhengfa129的专栏 425

quartz2.2.3 spring整合遇到的错误,及quartz配置文件说明

出现 Couldn't acquire next trigger: ORA-08177: 无法连续访问此事务处理错误: 1:可能是由org.quartz.jobStore.txIsolationLevelSerializable设置为true的原因,将此属性设置为false 2:你的job类中可能做了大量的和数据库交互的代码,但是job默认是多线程并发执行的,出现任务堆积导致,如果使用Meth

啊大海全是水的博客 5883

Spring系列——两万字长文教会你Spring (超详细!!!)

到此,我们学习完了 Spring 框架,包括: Spring 体系结构 Spring Bean Spring AOP Spring JDBC Spring 事务管理 此文章是为了做个笔记,等以后自己忘记了可以回头快速上手。同时也分享给小伙伴们,希望我们都能越来越好,不会就学 B 站,不懂就问 AI,总好过自己两耳不闻窗外事的独自琢磨。 最后认识一下吧,笔者叫`北迁`,hhh~~。

weixin_63009611的博客 1156

springboot + Quartz 实现定时任务管理

springboot +Quartz 实现定时任务持久化管理详细实践教程

gordon 566

Cron表达式详解:从语法到实战,掌握定时任务调度的核心

定时任务是自动化运维和系统开发中的基础技术,它通过预设规则在特定时间点或周期性地执行指定操作,是实现系统自动化、提升效率的关键。其核心原理在于将时间维度抽象为可配置的规则,由调度器进行解析触发。在应用层面,Cron表达式作为一种广泛使用的任务调度语法,以其简洁的字符串格式定义了复杂的执行计划,技术价值在于实现了跨平台、易配置的定时触发机制。无论是服务器日志切割、数据库定时备份,还是物联网设备的状态上报,Cron表达式都是实现这些周期性任务的通用解决方案。本文将聚焦于Cron表达式的核心语法,深入解析其字段

weixin_30699955的博客 416

XXL-Job 分布式任务调度平台:从核心原理到 Spring Boot 集成实践

分布式任务调度是构建高可用、可扩展后端系统的关键技术,其核心原理在于将任务的触发执行解耦,通过中心化调度器统一管理任务的生命周期。这种架构解决了传统单机定时任务在分布式环境下重复执行、负载不均和状态监控困难等痛点,为微服务架构提供了可靠的后台作业支撑。XXL-Job 作为一款轻量级开源分布式任务调度平台,通过调度中心执行器分离的设计,实现了任务配置可视化、调度策略多样化以及执行日志完整化。在技术价值层面,它显著降低了分布式定时任务的开发运维复杂度,支持分片广播、故障转移等高级特性,适用于大数据处理、定

weixin_34293141的博客 343

RabbitMQ延迟消息插件安装配置全攻略

消息队列作为现代分布式系统的核心组件,通过解耦、异步和削峰填谷等机制提升系统可靠性和扩展性。RabbitMQ作为广泛采用的开源消息代理,其原生支持多种交换机类型,但延迟消息功能需通过社区插件实现。该插件基于AMQP协议扩展,通过在交换机层面实现消息暂存和定时触发机制,解决了传统TTL方案的队头阻塞问题,为订单超时、定时任务等场景提供了高效解决方案。本文聚焦于解决部署和使用rabbitmq_delayed_message_exchange插件过程中的典型问题,特别是针对unknown exchange typ

weixin_30631587的博客 463

Spring Boot+Vue+小程序积分商城项目:从零到一环境配置全链路调试指南

在软件开发领域,前后端分离架构已成为现代Web应用的主流模式,它通过解耦前端展示后端业务逻辑,提升了开发效率和系统可维护性。其核心原理在于前端通过API接口后端进行数据交互,后端专注于业务处理和数据持久化。这种架构的技术价值在于支持多端协同开发,例如同时构建管理后台和微信小程序。在实践层面,一个典型的应用场景是构建一个BS架构的电商平台,例如积分制零食自选平台。这类项目涉及Spring Boot后端、Vue管理后台微信小程序三端协同,其落地难点往往集中在环境配置接口联调环节。本文聚焦于【毕业设计】和

cuiji1279的博客 372

若依Ruoyi-Vue快速上手:10分钟本地运行Spring Boot+Vue权限管理系统

在企业级应用开发中,权限管理系统是支撑业务安全数据隔离的核心基础设施。其基本原理是通过角色资源的绑定,实现用户访问控制。采用成熟的开源解决方案能大幅降低开发成本,提升工程效率。Spring BootVue.js作为当前主流的前后端技术栈,其组合常被用于构建高性能、可维护的管理后台。若依Ruoyi-Vue正是基于此技术栈的典型代表,它提供了完整的权限管理、菜单配置等脚手架功能,实现了开箱即用的工程化实践。对于Java后端开发者或中小团队,它能快速搭建稳健的后台系统底盘,尤其适合需要快速验证业务原型的场景

weixin_34159110的博客 511

[Java]RuoYi框架原理分析

Velocity是一个基于Java的模板引擎,可以通过特定的语法获取在java对象的数据 , 填充到模板中,从而实现界面和java代码的分离!Web内容生成 : 生成动态Web页面。代码生成 : 生成Java源代码、SQL脚本、XML配置文件等。网页静态化 : 生成静态网页。Spring Security是一个功能强大的Java安全框架,它提供了全面的安全认证和授权的支持。RBAC模型结合使用时,Spring Security能够实现灵活的权限控制。我们来看下它的二大核心概念,认证和授权。

. 1598

Java中File转MultipartFile的3种方案:原理、选型避坑指南

Java Web开发中,文件上传是常见需求,Spring框架通过MultipartFile接口对HTTP上传文件进行抽象封装,简化了控制器层的文件接收处理。其核心原理是将HTTP请求中的multipart/form-data格式数据解析为可操作的Java对象,便于获取文件名、内容类型和输入流。这一设计极大提升了开发效率,使得文件上传功能能够快速集成到Web应用中。然而,在单元测试、批处理任务或需要将本地文件系统File对象适配为MultipartFile的场景下,开发者常面临接口不匹配的挑战。此时,手动

weixin_30530339的博客 438

后端大厂面试总结大全

1、首先,通过BeanDefinitionReader 读取指定的配置文件生成bean的定义信息,然后到完整的bean定义信息(BeanDefinition对象),注意这里只是存储bean的定义信息,还没有实例化bean对象;就像工厂里面一样,原材料已经准备好了,但是还没有进行生产,原材料就是beanDefinition,生产就是实例化。2、在 BeanDefinition 和 完整BeanDefinition 中间通过一个后置增强器,可以对bean的定义信息进行统一修改,只需要实现 BeanFactory

zouyang920的博客 380

工作中使用到的单词(软件开发)

1.エイリアス   alias 别名 powershell使用 get-help 命令时,会得到此命令 相关(别名)的命令 2.プロキシ proxy 代 理 3.プロモート   promote 促进,提升   开发的系统新功能上线发布,有时会使用到这个词,比如 STプロモート 还有使用リリース这个词的。比如STリリース。个人认为两者含义相同。 4.見逃し み................................................................

sun0322 6万+

若依整合AI三 拔高原理篇

代码生成器是提升开发效率的重要工具,主要分为表结构管理和代码生成两部分。系统通过gen_table和gen_table_column两张核心表存储业务表结构信息,实现表结构的导入、编辑和同步功能。当选择表结构后,系统可自动生成前后端代码并提供下载。核心功能包括:数据库表列表查询、表结构导入和代码生成下载。此外,系统支持通过配置文件自定义生成参数,如作者名、包路径和表前缀等,并可扩展功能如支持Lombok注解。该工具通过自动化代码生成,显著减少了重复开发工作,提高了项目开发效率。

东风麦芽糖 886

SpringBoot学业预警系统开发指南:从规则引擎到部署实战

在软件工程领域,业务规则引擎是实现复杂业务逻辑解耦动态配置的核心技术,其原理在于将可变的业务决策从应用程序代码中分离,通过预定义的规则模型进行管理和执行。这种技术价值在于极大地提升了系统的灵活性和可维护性,使得非技术人员也能参业务规则的调整。在诸如学生管理、风险控制等应用场景中,规则引擎能够基于预设条件(如成绩阈值、考勤数据)自动触发相应操作。本文聚焦于高校学业预警系统的构建,深入探讨如何利用SpringBoot框架结合定时任务调度,实现一个可配置、自动化的预警规则引擎,并详细阐述了从环境搭建、核心业务

weixin_30516243的博客 283

Okhttp.jar

很好用的资源,java 模拟浏览器必备

上一篇: Spring事务配置的五种方式
下一篇: apache单独编译添加proxy编译安装
dingh69
博客等级 码龄19年 4粉丝 34原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值