首页 > 其他分享 >cron表达式详细讲解

cron表达式详细讲解

时间:2024-01-23 18:04:08浏览次数:23  
标签:表示 星期 12 15 cron 任务 讲解 执行 表达式

概念

cron表达式是一种用于指定任务在某个时间点或周期性执行的字符串表达式。它包含6个或7个域,每个域代表不同的含义,从左到右依次为"秒 分 时 日 月 星期几 年",其中年不是必须的(不写代表当前年份),cron表达式的配置简洁方便,因此在定时调度任务中被广泛使用

参数

cron表达式包含6个或7个参数,每个参数代表不同的时间单位和取值范围

  • 秒(0-59)
  • 分钟(0-59)
  • 小时(0-23)
  • 日(1-31)
  • 月(1-12 或 JAN-DEC)
  • 星期几(0-6 或 SUN-SAT)
  • 年(可选,1970-2099)

格式

cron表达式详细讲解_cron表达式

举例与特殊符号详解

举例:

  • "0 0 8 * * *" 表示每天上午8点执行任务。
  • "0 0/30 9-17 * * *" 表示在每天9点到17点之间,每隔30分钟执行一次任务。
  • "0 0 12 ? * WED" 表示每周三中午12点执行任务。
  • "0 0 10 L * ?" 表示每个月的最后一天上午10点执行任务。
  • "0 0 3-5 * * *" 表示每天凌晨3点到5点之间,每小时执行一次任务。
  • "0 15 10 L * ?" 表示每个月的最后一天上午10:15分执行任务。

特殊符号:

  • *(通配符):匹配任意值,例如* * * * * ?表示每秒执行一次任务。“*”在分钟字段中表示每一分钟。
  • ,(列表):用于指定多个取值,例如0 0 6,12,18 * * ?表示每天6点、12点和18点执行任务。
  • -(范围):用于指定一个范围内的取值,例如0 0 9-17 * * MON-FRI表示周一至周五的9点到17点之间每小时执行一次任务。
  • /(步长):用于指定一个取值的步长,例如5/15 * * * * ?表示从第 5 秒开始,每 15 秒一次(5 20 35 50)执行一次,0/15也可写成*/15。0 */30 * * * ?表示每30分钟执行一次任务。
  • ?(无限定符):只有在日期和星期字段中可用,表示这个字段,可忽略 日期和星期不能同时指定值,必须有一个是? 或者同时为* 例如0 0 12 ? * MON-FRI表示周一至周五中午12点执行任务。
  • #(日历偏移量):只能用在星期字段,指定某个月份的第几个周几,X#Y表示每个月的第Y个星期X,例如0 0 0 ? * 3#1表示每个月的第一个星期三执行任务。
  • L(Last最后):表示某个指定时间内的最后一天,例如0 0 L * * ?表示每月的最后一天执行任务。在日期字段中,表示在当月最后一天。可以在星期字段中插入“?”,表示星期值无关紧要。在星期字段中,如果“L”单独存在,就等于“7”或“SAT”,但是,前面出现数据X时,表示“当月的最后一个星期X”,即,“1L”表示当月的最后一个星期日。
  • W(Weekday工作日):表示距离指定日期最近的工作日,例如0 0 0 15W * ?表示距离当月15日最近的工作日执行任务。如果15号是工作日,则执行任务;如果15号是周末,则任务会到最近的工作日执行。

15W

  • - 15号是周三时,就是指15号
  • - 15号是周六时,指14号周五
  • - 15号是周日时,指16号周一

1W

  • -1号是周六时,指3号周一,它不能跨过当月

LW

  • 表示当月的最后一个工作日

标签:表示,星期,12,15,cron,任务,讲解,执行,表达式
From: https://blog.51cto.com/u_16407829/9381831

相关文章

  • Java 将表达式解析为AST
    importorg.antlr.v4.runtime.*;importorg.antlr.v4.runtime.tree.*;publicclassExpressionParser{publicstaticvoidmain(String[]args)throwsException{//创建输入流InputStreaminput=newFileInputStream("expression.txt")......
  • Linux-crontab的使用
    一、什么是crontab?crontab是有cron(crond)这个系统服务来控制的,cron服务是linux的内置服务,类似于window下的计划任务,但它不会开机自动启动二、如何使用?crontab-l   //查看当前用户的crontabcrontab-e   //编辑crontabcrontab-r   //删除某个用户的cron服......
  • Java开源表达式计算引擎(转载)
    1) jfireEL——高性能EL表达式解析框架jfireEL是快速的EL表达式解析器,支持丰富的EL表达式,7倍于SpringEL的超高性能。2)Aviator——轻量级高性能Java表达式引擎Aviator是一个高性能、轻量级的Java语言实现的表达式求值引擎,主要用于各种表达式的动态求值。支......
  • 求前缀表达式的值
    #include<iostream>#include<algorithm>#include<string>#include<stack>#include<stdlib.h>usingnamespacestd;stack<double>st;intmain(){stringstr[100];intn=0;//在求前缀或者后缀的时候,从前到后读入数据,前缀的话倒着读出数据,从右往左看,有数......
  • 文件系统知识讲解_
    1.什么是文件系统?小结:1.1文件系统是对一个存储设备上的数据和元数据进行组织的一种机制1.3分区必须格式化,创建文件系统才能存放数据,不同的分区只能有一种文件系统1.2Linux下常见文件系统ext2、ext3、ext4、zfs、xfs和ReiserfsWindows......
  • 【动态规划】正则表达式
    目录1.题目2.应用2.1.Leetcode10.正则表达式匹配题目解题思路代码实现1.题目题目列表:序号题目难度110.正则表达式匹配困难2.应用2.1.Leetcode10.正则表达式匹配题目10.正则表达式匹配解题思路设\(dp[i][j]\)表示\(s\)的前\(i\)个字符与......
  • [转]一篇搞懂javascript正则表达式
    原文地址:一篇搞懂javascript正则表达式-知乎最近在看vue源码的时候发现一个令人头疼的问题,就是正则表达式,在此之前我对正则只有一知半解,没有深入了解,所以看到正则高级写法都不知是什么含义,哎...,所以就去查看相关资料和博主写的,特意整理记录一下学习的过程并用通俗易懂的文章分......
  • 【C语言初阶篇】结构体知识点的全面讲解!
    <br><br/><center><fontcolor="#006666">......
  • Jmeter 之正则表达式的使用
    1背景及用途:html、json数据都可以转化为文本,提供给正则去提取,使用正则可以提取全部数据,这就是正则表达式非常强大的一点。html格式响应更适合用xpath提取,性能比正则好一点json格式响应数据适合用jsonpath来提取,性能比正则好一点 2正则表达式介绍:  3添加......
  • 使用LINQ、Lambda 表达式 、委托快速比较两个集合,找出需要新增、修改、删除的对象
    快速对比两个list数据集合此文引用csdn:https://blog.csdn.net/Zhu_daye/article/details/104798410小批量、快速对比两个list数据集合usingSystem.Linq.Expressions;Main();voidMain(){//对比源集合varsource=GenerateStudent(1,10000,1000);//......