Cron 表达式是什么

在介绍Cron 之前, 先看看类似的两个词,这两个词都是Linux 和Unix中的概念。

  • crontab: 是Linux/Unix操作系统中的一个命令, 用于设置周期性需要被执行的命令。该命名从输入终端读取指令, 存放到系统的crontab 文件中。命令类似: 0 12 * * * /usr/local/etc/rc.d/lighttpd restart
  • crond, crond 是crontab守护进程的名字, 也就是服务的名字, 比如启动该服务 service crond start
    直接点说:crontab对应到一个文件 /usr/bin/crontab, 该文件记录了需要定时执行的任务,crond 服务就是读取那个文件进行实际的动作。

cron 相关的词是什么意思呢?和定时任务有什么关系呢?
crontab来源于古希腊语chronos(χρνο), 意思就是时间。 因为 cron的简洁和易读,cron已经广泛使用在排程的场景,比如:

  1. Jenkins 的定时任务的设置
  2. Spring框架对Cron 的支持

cron 的语法很简单, 网络上也提供了一些在线生成的工具:
https://www.bejson.com/othertools/cron/

Cron 的语法

格式
Seconds Minutes Hours DayofMonth Month DayofWeek Year
或者
Seconds Minutes Hours DayofMonth Month DayofWeek
一个Cron表达式有 6到7个有空格分割的时间元素。按顺序依次是:

  • 秒 : 0-59
    -分钟 : 0-59
    -小时 : 0-23
    -天(月) : 0-31
    -月 : 0-11
    -天(星期) 1-7 , 也可以设置SUN,MON,TUE,WED,THU,FRI,SAT。1 是SUN ,
    -年份 1970-2099

没有元素的值可以是:

  • 一个值, 比如1
  • 一个连续空间
  • 一个间隔时间 1-10/2 1到10点每隔2小时
  • 一个列表 1,3,5
  • 通配符 *

由于“月份中的天”和“星期中的天” 这两个元素是互斥的, 必须要对其中一个设置 ?

特殊字符

  • * 匹配任意值
  • / 数值的增量
  • ? 仅用于(月)天和(星期)天, 表示不指定值。
  • L 仅用于(月)天和(星期)天, 是 Last 的意思。
    在月表示月的最后一天
    在星期表示星期的最后一天, 也就是SAT
    前面加数字表示倒数第几, 比如 6L
  • - 表示范围
  • , 列出枚举值
  • W 表示有效工作日(周一到周五), 只能出现在DayofMonth。指定日期最近的有效工作日出发条件。
  • LW 某个月最后一个工作日, 即最后一个星期五
  • # 用于确定每个月第几个星期几, 只能出现在DayofMonth, 4#2 表示某月的第二个星期三。

示例

  • 0 0 9,10 * * ? 每天上午 9 点, 10点
  • 0 0/30 9-17 * * ? 每天朝9晚5每隔半小时


Cron 表达式一篇通相关推荐

  1. 【番外篇1】青龙面板中cron表达式新手入门教程cron的介绍与使用

    cron表达式即计划任务,约定任务在特定的时间执行 cron表达式有7位和5位之分,不同位数之间以空格分隔 7位:* * * * * * * 从左到右依次代表秒.分.时.天.月.周.年,在大部分情况下 ...

  2. cron表达式,看这篇就够了

    一个bug 昨天下午写了个定时器,遇到了个离谱的问题?!原本想让定时器每五分钟跑一次,结果启动之后迟迟不跑?研究一番之后,才发现之前对cron表达式的理解是错误的. 我是这样写的:0 5 * * * ...

  3. 作业调度框架 Quartz 学习笔记(三) -- Cron表达式

    2019独角兽企业重金招聘Python工程师标准>>> 前面两篇说的是简单的触发器(SimpleTrigger) , SimpleTrigger 只能处理简单的事件出发,如果想灵活的 ...

  4. .net core 实现基于 cron 表达式的任务调度

    .net core 实现基于 cron 表达式的任务调度 Intro 上次我们实现了一个简单的基于 Timer 的定时任务,详细信息可以看这篇文章 . 但是使用过程中慢慢发现这种方式可能并不太合适,有 ...

  5. 摆脱困境:将环境特定的Cron表达式与@Scheduled批注一起使用

    @Scheduled注释提供了一种在Spring驱动的应用程序中创建计划任务的简便方法. 我们可以使用它通过定期调度或cron表达式来调度我们的任务. 尽管时段调度也可能有用,但是cron表达式使我们 ...

  6. Quartz使用总结、Cron表达式

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. Quartz可以用来做什么? Quartz是一个任务调度框架.比如你遇到这样的问题 想每月25号,信 ...

  7. cron表达式及其验证方法

    一.表达式组成 Cron表达式是一个字符串,字符串以5或6个空格隔开,分为6或7个域,每一个域代表一个含义,Cron有如下两种语法格式: 都使用数字,但还可以出现如下特殊字符,它们的含义是: (1) ...

  8. spring定时任务cron为每季度第一个工作日转换为cron表达式

    最近系统有个需求,执行一个定时任务发送待办事项,一年有六次,分别为每季度第一个工作日.第二季度和第四季度结束后的第十个工作日,可头疼坏了 还好我们系统有个工作日表,于是思路就是先查询出每季度的第一天, ...

  9. FreeMaker一篇通

    FreeMaker一篇通 前言 Freemaker是一个强大的模板引擎,相比velocity而言,其强大的过程调用.递归和闭包回调功能让freemaker可以完成几乎所有我们所想的功能.从个人看法而言 ...

最新文章

  1. CentOS Linux解决 Device eth0 does not seem to be present
  2. Distance metric learning
  3. Common Lisp中调用R
  4. 论文浅尝 | ICLR2020 - 基于组合的多关系图卷积网络
  5. 【tyvj3303】连接格点,区分多维与单维很关键
  6. 边缘设备上的实时AI人员检测:选择深度学习模型
  7. 给对象添加属性和给对象原型添加属性的区别
  8. 7. namp工具的基础了解
  9. 人工智能书籍推荐:【A027】[图灵原创].人工智能简史
  10. Java给pdf添加页码(添加页眉页脚)
  11. 自动消防报警喷水灭火系统实训装置QY-LY154
  12. 计算机拨打比赛策划书,电脑打字擂台赛活动策划书
  13. 07:计算多项式的值
  14. AWD系统加固,系统渗透笔记
  15. UVA 11134 Fabled Rooks
  16. word计算机桌面加密,如何给电脑的Word文件加密
  17. nil Foundation blueprint模块代码解析
  18. CasePlayer2
  19. 会声会影2022永久免费版新手小白必备视频剪辑工具
  20. 基于《狂神说Java》Vue--学习笔记

热门文章

  1. [二分][贪心]JZOJ P3996 Sabotage
  2. PyQt4设置窗口左上角的小图标
  3. Git学习05 --分支管理02
  4. 为bootstrap+angularJs打造的表格代码生成器
  5. Unity cg vertex and fragment shaders(二)
  6. 2021高值人才职业发展洞察:连接、信任与赋能----“高能”、“高薪”、“高潜”...
  7. 【报告分享】2020年她趋势报告.pdf(附下载链接)
  8. 原生xgboost与sklearn里的xgboost
  9. 从Google Scholar看各大科技公司科研水平
  10. 机器学习深度学习知识点总结