cron表达式语法规则及常见示例

简介: cron表达式语法规则及常见示例

cron表达式产生的背景

cron表达式最初是由Unix操作系统中的cron守护进程所使用的一种语法规则,用于设置定时任务。cron守护进程是Unix系统中的一个后台进程,用于周期性地执行指定的命令或脚本。它可以根据用户的需求,按照指定的时间间隔或时间点来执行任务,通常用于定时备份、清理日志、发送邮件等操作。


为了方便用户设置定时任务,cron守护进程引入了一种简单的语法规则,即cron表达式。cron表达式由6个字段组成,分别表示秒、分、小时、日期、月份和星期几。每个字段都可以设置一个数字、一组数字(用逗号分隔)、一段数字范围(用短横线分隔)、通配符(表示任意值)或者特定的字符(如星期几的英文缩写)。通过这种语法规则,用户可以非常灵活地设置定时任务,满足不同的需求。


随着Unix操作系统的普及和互联网的发展,cron表达式逐渐成为了一种通用的定时任务设置语法,被广泛应用于各种计算机系统和应用程序中。目前,cron表达式已经成为了计算机科学中的一个基本概念,被包括Java、Python、Ruby等编程语言在内的许多软件框架和库所支持和应用。


什么是cron表达式

cron表达式是一种用于设置定时任务的语法规则。它由6个字段组成,分别表示秒、分、小时、日期、月份和星期几。每个字段都可以设置一个数字、一组数字(用逗号分隔)、一段数字范围(用短横线分隔)、通配符(表示任意值)或者特定的字符(如星期几的英文缩写)。以下是cron表达式的语法规则:


* * * * * *
- - - - - -
| | | | | |
| | | | | +--- 星期几 (0 - 6) (0表示周日)
| | | | +----- 月份 (1 - 12)
| | | +------- 日期 (1 - 31)
| | +--------- 小时 (0 - 23)
| +----------- 分钟 (0 - 59)
+------------- 秒 (0 - 59)

常见示例

下面是10个cron表达式的示例,以及它们的含义:


  1. 0 0 0 * * ?:每天的零点整执行任务。
  2. 0 0 */2 * * ?:每隔2小时执行一次任务。
  3. 0 0 12 * * ?:每天中午12点执行任务。
  4. 0 15 10 * * ?:每天上午10点15分执行任务。
  5. 0 0 6,18 * * ?:每天的早上6点和晚上6点执行任务。
  6. 0 0/30 8-18 * * ?:每天的上午8点到下午6点之间,每隔30分钟执行一次任务。
  7. 0 0 0 1 1 ?:每年的1月1日零点整执行任务。
  8. 0 0 0 * * 2:每周的星期二零点整执行任务。
  9. 0 0 0 ? * 6#3:每月的第三个星期六零点整执行任务。
  10. 0 0 0 L * ?:每个月的最后一天零点整执行任务。

这些示例只是cron表达式的一小部分,实际上还有很多其他的用法和组合方式。需要根据具体需求来设置定时任务。

目录
相关文章
|
搜索推荐 云计算
在线教育平台
在线教育平台
1233 3
|
存储 前端开发 JavaScript
ahooks 正式发布:值得拥抱的 React Hooks 工具库
ahook定位于一套基于 React Hooks 的工具库,核心围绕 React Hooks 的逻辑封装能力,降低代码复杂度和避免团队的重复建设为背景,共同建设和维护阿里经济体层面的 React Hooks 库。
23980 1
ahooks 正式发布:值得拥抱的 React Hooks 工具库
|
9月前
|
缓存 Java 数据库
微服务——SpringBoot使用归纳——Spring Boot中使用监听器——监听器介绍和使用
本文介绍了在Spring Boot中使用监听器的方法。首先讲解了Web监听器的概念,即通过监听特定事件(如ServletContext、HttpSession和ServletRequest的创建与销毁)实现监控和处理逻辑。接着详细说明了三种实际应用场景:1) 监听Servlet上下文对象以初始化缓存数据;2) 监听HTTP会话Session对象统计在线用户数;3) 监听客户端请求的Servlet Request对象获取访问信息。每种场景均配有代码示例,帮助开发者理解并应用监听器功能。
574 0
|
5月前
|
监控 供应链 数据可视化
一文读懂看板管理法:生产看板到底看什么、怎么管、怎么用
看板管理是制造业精益生产中的核心工具,助力实现生产可视化与高效协同。本文系统解析看板管理法,涵盖其基于拉动式与准时化生产的核心逻辑、六类常见看板的应用场景,以及车间搭建看板的具体方法,助力企业推动精益生产落地。
|
Java Windows
IDEA不使用lombok,如何快速生成get和set方法
【11月更文挑战第10天】在 IntelliJ IDEA 中生成 `get` 和 `set` 方法有多种方式:通过菜单操作、使用快捷键或自定义模板。菜单操作包括选择“Code”菜单中的“Generate...”,快捷键为“Alt + Insert”。自定义模板可在“File”->“Settings”->“Editor”->“Code Style”->“Java”中设置。批量生成时,可多选变量一次性生成。
2750 2
|
Unix Linux
Cron介绍,以及常见的cron表达式
Cron介绍,以及常见的cron表达式
1211 0
|
存储 缓存 JSON
详解HTTP四种请求:POST、GET、DELETE、PUT
【4月更文挑战第3天】
71677 5
详解HTTP四种请求:POST、GET、DELETE、PUT
|
资源调度 前端开发 数据安全/隐私保护
react 动态路由使用
【8月更文挑战第30天】react 动态路由使用
470 0
超好用的截图软件Snipaste(包含安装包)、如何设置Snipaste开机自启
这篇文章提供了Snipaste截图软件的介绍,包括它的功能、如何下载和安装,以及如何设置开机自启动的详细步骤。