Cron表达式详解

简介: Cron表达式详解

1.Cron表达式的概念

Cron表达式是一种常用的方式。它是一种由字段组成的字符串,用于表示任务的执行时间。每个字段代表了一种时间单位,包括分钟、小时、日期、月份和星期几。Cron表达式通常由6个或7个字段组成,具体取决于实现方式。

下面是一个标准的Cron表达式的格式:

* * * * * *
| | | | | |
| | | | | +-- 年份(可选)
| | | | +---- 星期几(0 - 707 表示星期日)
| | | +------ 月份(1 - 12| | +-------- 日期(1 - 31| +---------- 小时(0 - 23+------------ 分钟(0 - 59

2.Cron表达式的取值范围

每个字段都可以使用不同的取值来指定任务执行的时间。这里有一些常用的取值方式:

  • 分钟(0 - 59):可以指定具体的分钟数,如0、15、30,或者使用通配符*表示每分钟都执行。
  • 小时(0 - 23):可以指定具体的小时数,如1、9、22,或者使用通配符*表示每小时都执行。
  • 日期(1 - 31):可以指定具体的日期,如1、15、31,或者使用通配符*表示每天都执行。
  • 月份(1 - 12):可以指定具体的月份,如1、6、12,或者使用通配符*表示每个月都执行。
  • 星期几(0 - 7):可以指定具体的星期几,如1(表示星期一)、5(表示星期五)、0或7(表示星期日),或者使用通配符*表示每天都执行。

除了通配符之外,还可以使用逗号,来指定多个取值,使用连字符-来指定一个范围,使用斜线/来指定一个步长。例如,0 0 8-10 表示在每天的8点、9点和10点整执行任务。

3.Cron表达式的特殊字符串

在一些实现中,还可以使用特殊的字符串来表示其他含义,比如:

  • @yearly:等同于0 0 1 1 ,表示每年的1月1日零点执行任务。
  • @monthly:等同于0 0 1 *,表示每个月的1日零点执行任务。
  • @weekly:等同于0 0 0 *,表示每个星期日的零点执行任务。
  • @daily或@midnight:等同于0 0 ,表示每天的零点执行任务。
  • @hourly:等同于0 *,表示每小时的零分执行任务。

Cron表达式提供了一种灵活的方式来定义任务的执行时间,使得定期任务的调度变得简单和可靠,下面列举几个Cron表达式的例子供参考。

4.Cron表达式示例

表达式 说明
0 0 * * * * 每小时零分执行任务
0 30 8 * * * 每天上午8点30分执行任务
0 0 12 * * MON 每个星期一中午12点执行任务
0 0 1 1 * * 每年的1月1日凌晨1点执行任务
0 0 15 * 1-5 * 每个工作日下午3点执行任务
0 0/15 * * * * 每15分钟执行一次任务
0 0 0 1 1,4,7 * 每年的1月1日和4月1日和7月1日午夜执行任务
0 0 8 1/3 * * 每隔3个月的第一天上午8点执行任务
0 0 0 * * SAT 每个星期六午夜执行任务
0 0 12 * * 1-5 每个工作日中午12点执行任务
相关文章
|
2月前
|
人工智能 自然语言处理 安全
Claude Code 全攻略:命令大全 + 实战工作流(建议收藏)
本文介绍了Claude Code终端AI助手的使用指南,主要内容包括:1)常用命令如版本查看、项目启动和更新;2)三种工作模式切换及界面说明;3)核心功能指令速查表,包含初始化、压缩对话、清除历史等操作;4)详细解析了/init、/help、/clear、/compact、/memory等关键命令的使用场景和语法。文章通过丰富的界面截图和场景示例,帮助开发者快速掌握如何通过命令行和交互界面高效使用Claude Code进行项目开发,特别强调了CLAUDE.md文件作为项目知识库的核心作用。
43191 72
Claude Code 全攻略:命令大全 + 实战工作流(建议收藏)
启动报错:java.nio.charset.MalformedInputException: Input length = 1
启动报错:java.nio.charset.MalformedInputException: Input length = 1
1466 0
|
8月前
|
缓存 监控 Java
《深入理解Spring》拦截器(Interceptor)——请求处理的艺术
Spring拦截器是Web开发中实现横切关注点的核心组件,基于AOP思想,可在请求处理前后执行日志记录、身份验证、权限控制等通用逻辑。相比Servlet过滤器,拦截器更贴近Spring容器,能访问Bean和上下文,适用于Controller级精细控制。通过实现`HandlerInterceptor`接口的`preHandle`、`postHandle`和`afterCompletion`方法,可灵活控制请求流程。结合配置类注册并设置路径匹配与执行顺序,实现高效复用与维护。常用于认证鉴权、性能监控、统一异常处理等场景,提升应用安全性与可维护性。
|
7月前
|
机器学习/深度学习 人工智能 前端开发
终端里的 AI 编程助手:OpenCode 使用指南
OpenCode 是开源的终端 AI 编码助手,支持 Claude、GPT-4 等模型,可在命令行完成代码编写、Bug 修复、项目重构。提供原生终端界面和上下文感知能力,适合全栈开发者和终端用户使用。
54768 11
完美解决Non-terminating decimal expansion; no exact representable decimal result.异常
完美解决Non-terminating decimal expansion; no exact representable decimal result.异常
27994 0
完美解决Non-terminating decimal expansion; no exact representable decimal result.异常