首页 > 其他分享 >Cron表达式

Cron表达式

时间:2024-08-30 14:39:01浏览次数:8  
标签:表示 星期 00 Cron 字段 执行 表达式

Cron表达式是一种用于描述定时任务执行时间的字符串格式,在Unix、Linux、Mac OS X等操作系统中被广泛使用。它通过一系列的时间字段来描述一个定时任务应该在哪些时间点执行。

它通常由6~7位组成,年份可以省略。每个时间字段都可以是数字、星号、逗号、减号、正斜杠和问号这些特殊字符的组合。

基本语法

 Cron的各个字段含义及取值范围

位数 含义 取值范围
1 0~59(5位的时候,可以省略)
2 0~59
3 0~23
4 1-31
5 1-12
6 星期 0-6(0表示周日)
7
1970 - 2099(可选)

 每个字段,可以用特殊的字符来表示一些特定的取值。

* 匹配所有的值。在分钟、小时、日期、月份和星期中使用时,表示“每个”或“任何”
? 只能在日期和星期中使用,表示“无意义”或“不适用”。例如,如果您想在每月的第一天执行任务,但无论这一天是星期几,可以将日期字段设置为1,将星期字段设置为?
- 指定一个范围。例如,1-5表示1到5的值
, 指定多个值。例如,MON,WED,FRI表示星期一、星期三和星期五
/ 指定一个增量。例如,0/5表示从0秒开始,每5秒执行一次
L 只能在日期和星期中使用。在日期字段中,表示这个月的最后一天;在星期字段中,表示这个月的最后一个星期几。例如,L在日期字段中表示每个月的最后一天,5L表示这个月的最后一个星期五
W 只能在日期字段中使用,表示最近的工作日(周一至周五)。“W”可以和具体的日期或者“L”连用,例如15W表示这个月的第15个工作日,LW表示这个月的最后一个工作日
# 只能在星期字段中使用,表示这个月的第几个星期几。例如,2#1表示这个月的第一个星期二

注意:在Cron表达式中,要保证各个字段的取值之间没有冲突,否则定时任务可能无法按照预期执行。

常见表达式示例

0 6 * * *
每天6点执行一次
30 * * * *
每小时第30分钟执行一次
*/5 * * * *
每隔5分钟执行一次
0 7 1 * *
每月的第一天早上7点执行一次
0 15 * * 0
每周的周日下午3点执行一次
0 5 1 1 *
每年的1月1日早上5点执行一次
*/30 8-17 * * 1-5
每个工作日早上8点到下午5点之间,每隔30分钟执行一次

 

表达式的高级用法

使用通配符

通配符可以在任何字段中使用,表示匹配所有可能的值。在分钟和小时字段中,""表示匹配0到59和0到23的所有值,而在日和月字段中,""表示匹配1到31和1到12的所有值。在周几字段中,"*"表示匹配0到6,其中0表示周日,1表示周一,以此类推。

使用时间增量

时间增量可以在任何字段中使用,表示从指定的起始时间开始,每隔一定时间执行任务。在分钟和小时字段中,"/"后面的数字表示增量,例如"/5"表示每隔5分钟执行一次任务。在日和月字段中,"/"后面的数字表示间隔的天数或月数,例如"/2"表示每隔2天执行一次任务。在周几字段中,"/"后面的数字表示间隔的周数,例如"*/3"表示每隔3周执行一次任务。

使用将多个表达式组合

可以使用逗号和连字符将多个表达式组合在一起,以指定更复杂的时间表。例如,"0 8-12,14-18 * * *"表示每天的8:00到12:00和14:00到18:00之间执行任务。另外,可以使用括号来分组表达式,以便更精细地控制任务的执行时间。例如,"(0 10 * * 1-5),(0 16 * * 1-5)"表示每周一至周五的10:00和16:00执行任务。

当然,如果忘记了cron规则,可以用在线工具:https://cron.qqe2.com/

 

标签:表示,星期,00,Cron,字段,执行,表达式
From: https://www.cnblogs.com/luyj00436/p/18388724

相关文章

  • M语言 01 - 表达式和值
    **“基元”**值是单个部分值,如数字、逻辑、文本或NULL。NULL值可用于指示缺少数据。123//Anumbertrue//Alogical"abc"//Atextnull//nullvalue“列表”值是值的有序序列。M支持无限列表,但如果作为文本写入,则列表具有固定长度。大括号字符{和}表示列......
  • Spring EL表达式使用详解
    SpringEL表达式使用详解什么是SpringEL表达式SpringEL表达式是Spring表达式语言,支持在xml和注解中使用表达式,类似于JSP的EL,JSTL表达式语言。Spring开发中我们会经常涉及到调用各种资源的情况,包含普通文件、网址、正则表达式、系统变量、其他Bean的一些属性、配置文件、集......
  • 从匿名内部类到Lambda表达式:Java编程的优雅进化
    匿名内部类首先我们先来介绍一下什么是匿名内部类匿名内部类:java中一种特殊的类定义方式,它允许你在需要实现一个接口或继承一个类的地方直接定义一个该接口或类的匿名子类。若想创建一个派生类的对象,并且对象只创建一次,可以设计为匿名内部类,可以大大简化代码注意:匿名内部类......
  • 解读代码检查规则语言CodeNavi的表达式节点和属性
    本文分享自华为云社区《CodeNavi中代码表达式的节点和节点属性》,作者:Uncle_Tom。1.前期回顾《寻找适合编写静态分析规则的语言》根据代码检查中的一些痛点,提出了希望寻找一种适合编写静态分析规则的语言。可以满足用户对代码检查不断增加的各种需求;使用户能够通过增加或减少对检......
  • 6 Python运算符和表达式
    本篇是Python系列教程第6篇,更多内容敬请访问我的Python专栏Python运算符和Java类似,但也有个别不同。Python表达式和Java的区别是Python表达式不用跟“;”结尾。1算术运算符算术运算符用于执行基本的数学运算,如加减乘除等。加法(+):将两个数相加。result......
  • 正则表达式:Visual Basic中的强大文本处理工具
    正则表达式:VisualBasic中的强大文本处理工具在软件开发中,文本处理是一项常见且关键的任务。正则表达式作为一种强大的文本模式匹配工具,能够用于执行各种复杂的字符串搜索、替换、验证等操作。VisualBasic(VB),作为一门流行的编程语言,提供了对正则表达式的支持。本文将详细介......
  • C# 正则表达式
    正则表达式是一种匹配输入文本的模式。.Net框架提供了允许这种匹配的正则表达式引擎。模式由一个或多个字符、运算符和结构组成。定义正则表达式下面列出了用于定义正则表达式的各种类别的字符、运算符和结构。字符转义字符类定位点分组构造限定符反向引用构造备......
  • QT学习笔记2(QPushButton类、对象树、信号与槽,Lambdabiao表达式)
    那些难过的日子,都一起陪伴,也不说些什么大道理。难过的时候,所有人都给你讲一堆大道理。只有你的好朋友,懂你的沉默,陪你一起在墙角蹲着。对象树QT中创建QObject对象会时,构造函数会接收一个Parent父对象指针作为参数。这就于相当于创建QObject对象时,可以提供一个父类,创建的Q......
  • 正则表达式(Regular Expression)
    正则表达式(RegularExpression)是一种文本模式,包括普通字符(例如,a到z之间的字母)和特殊字符(称为"元字符"),可以用来描述和匹配字符串的特定模式,是一种用于模式匹配和搜索文本的工具,提供了一种灵活且强大的方式来查找、替换、验证和提取文本数据。概括:正则表达式是制定特定的......
  • lambda表达式
    1.什么是lambda表达式Lambda允许把函数作为一个方法的参数,使用Lambda表达式可以写出更简洁、更灵活的代码,而其作为一种更紧凑的代码风格,使Java的语言表达能力得到了提升。2.lambda表达式语法Lambda表达式在Java语言中引入了一个操作符**“->”**,该操作符被称为Lambda操作符......