惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

大猫的无限游戏
大猫的无限游戏
阮一峰的网络日志
阮一峰的网络日志
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
WordPress大学
WordPress大学
博客园 - 叶小钗
Hugging Face - Blog
Hugging Face - Blog
博客园 - 司徒正美
Last Week in AI
Last Week in AI
罗磊的独立博客
量子位
Jina AI
Jina AI
T
Tailwind CSS Blog
Apple Machine Learning Research
Apple Machine Learning Research
IT之家
IT之家
美团技术团队
雷峰网
雷峰网
爱范儿
爱范儿
S
SegmentFault 最新的问题
小众软件
小众软件
月光博客
月光博客
酷 壳 – CoolShell
酷 壳 – CoolShell
人人都是产品经理
人人都是产品经理
The Cloudflare Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报

博客园 - microsoft_xin

用户属性数据库设计:如何平衡固定信息与灵活扩展? mysql数据库千万级数据量是分库分表好还是数据归档好 MySQL 优化实战:为何 DELETE + IN 子查询性能不佳,而 JOIN 却能高效利用索引? git的还原提交和撤销提交可以帮你快速回滚提交和推送 java语法使用小技巧-保留两位小数-用group对list数据分组取和 java时间常用功能工具类 Navicat或DBeaver连接MySql提示错误 Unable to load authentication plugin ‘caching_sha2_password‘ 快速测试连接SQLServer数据库的方法 nlog使用小记(日志文件分割备份循环) IDEA常用快捷键 java中两个list集合取并集、交集和差集&对list数据进行对象属性筛选 C#客户端实现域环境内Windows认证免密码自动身份认证登录 .NET List常见操作之交集并集差集(转) mysql-查看最近执行sql脚本 SharePoint安装 OpenID Connect、SAML、WS-Federation和/或OAuth2.0 SQLServer常用SQL脚本 使用VSTO创建修改和删除outlook会议加载项(二) 使用VSTO创建修改和删除outlook会议加载项(一)
Cron表达式及格式适用于各种调度服务quartz xxljob hangfire
microsoft_xin · 2023-01-06 · via 博客园 - microsoft_xin

Cron表达式及格式适用于各种调度服务quartz xxljob hangfire

Cron Expression

精确到分钟数的五部分格式

                    * * * * *
                    - - - - -
                    | | | | |
                    | | | | +----- [周]day of week (0 - 6) (Sunday=0)
                    | | | +------- [月]month (1 - 12)
                    | | +--------- [天]day of month (1 - 31)
                    | +----------- [时]hour (0 - 23)
                    +------------- [分]min (0 - 59)

精确到秒数的六部分格式

                * * * * * *
                - - - - - -
                | | | | | |
                | | | | | +--- [周]day of week (0 - 6) (Sunday=0)
                | | | | +----- [月]month (1 - 12)
                | | | +------- [天]day of month (1 - 31)
                | | +--------- [时]hour (0 - 23)
                | +----------- [分]min (0 - 59)
                +------------- [秒]sec (0 - 59)

特殊字符 意义

                * 表示所有值;例如,“*”在子表达式(月)里表示每个月的含义,“*”在子表达式(天(星期))表示星期的每一天
                - 表示一个指定的范围;
                , 表示附加一个可能值;
                / 符号前表示开始时间,符号后表示每次递增的值;

Cron 表达式包括以下 7 个字段

  • 格式: [秒] [分] [小时] [日] [月] [周] [年]
  • 序号说明是否必填允许填写的值允许的通配符
    1 0-59 , - * /
    2 0-59 , - * /
    3 小时 0-23 , - * /
    4 0-31 , - * ? / L W
    5 1-12 or JAN-DEC , - * /
    6 1-7 or SUN-SAT , - * ? / L #
    7 empty 或者 1970-2099 , - * /

通配符说明

  1. 反斜线(/)字符表示增量值。例如,在秒字段中“5/15”代表从第 5 秒开始,每 15 秒一次。
  2. 星号(*)字符是通配字符,表示该字段可以接受任何可能的值(例如:在分的字段上设置 \"*\",表示每一分钟都会触发)。
  3. 问号(?)问号表示这个字段不包含具体值。所以,如果指定月内日期,可以在月内日期字段中插入“?”,表示周内日期值无关紧要。字母 L 字符是 last 的缩写。放在月内日期字段中,表示安排在当月最后一天执行。在周内日期字段中,如果“L”单独存在,就等于“7”,否则代表当月内周内日期的最后一个实例。所以“0L”表示安排在当月的最后一个星期日执行。
  4. - 表示区间,例如 在小时上设置 \"10-12\",表示 10,11,12点都会触发。
  5. 逗号(, ) 表示指定多个值,例如在周字段上设置 \"MON,WED,FRI\" 表示周一,周三和周五触发
  6. 井号(#)字符为给定月份指定具体的工作日实例。把“MON#2”放在周内日期字段中,表示把任务安排在当月的第二个星期一。
  7. L 表示最后的意思。在日字段设置上,表示当月的最后一天(依据当前月份,如果是二月还会依据是否是润年[leap]), 在周字段上表示星期六,相当于\"7\"或\"SAT\"。如果在\"L\"前加上数字,则表示该数据的最后一个。例如在周字段上设置\"6L\"这样的格式,则表示“本月最后一个星期五\"。
  8. W 表示离指定日期的最近那个工作日(周一至周五). 例如在日字段上设置\"15W\",表示离每月15号最近的那个工作日触发。如果15号正好是周六,则找最近的周五(14号)触发, 如果15号是周未,则找最近的下周一(16号)触发.如果15号正好在工作日(周一至周五),则就在该天触发。如果指定格式为 \"1W\",它则表示每月1号往后最近的工作日触发。如果1号正是周六,则将在3号下周一触发。(注,\"W\"前只能设置具体的数字,不允许区间\"-\。

注:'L'和 'W'可以一组合使用。如果在日字段上设置\"LW\",则表示在本月的最后一个工作日触发。

常用Cron表达式总结:

每分: (* * * * *)
每时: (0 * * * *)
每天: (0 0 * * *)
每周: (0 0 * * 1)
每月: (0 0 1 * *)
每年: (0 0 1 1 *)

Commonly used Example
0 10 * * * ?--------------------每个小时过10分执行一次
0 0/32 8,12 * * ? --------------每天8:32,12:32 执行一次
0 0/2 * * * ?-------------------每2分钟执行一次
0 0 12 * * ?--------------------在每天中午12:00触发
0 15 10 ? * *-------------------每天上午10:15 触发
0 15 10 * * ?-------------------每天上午10:15 触发
0 15 10 * * ? *-----------------每天上午10:15 触发
0 15 10 * * ? 2005--------------在2005年中的每天上午10:15 触发
0 * 14 * * ?--------------------每天在下午2:00至2:59之间每分钟触发一次
0 0/5 14 * * ?------------------每天在下午2:00至2:59之间每5分钟触发一次
0 0/5 14,18 * * ?---------------每天在下午2:00至2:59和6:00至6:59之间的每5分钟触发一次
0 0-5 14 * * ?------------------每天在下午2:00至2:05之间每分钟触发一次
0 10,44 14 ? 3 WED--------------每三月份的星期三在下午2:00和2:44时触发
0 15 10 ? * MON-FRI-------------从星期一至星期五的每天上午10:15触发
0 15 10 15 * ?------------------在每个月的每15天的上午10:15触发
0 15 10 L * ?-------------------在每个月的最后一天的上午10:15触发
0 15 10 ? * 6L------------------在每个月的最后一个星期五的上午10:15触发
0 15 10 ? * 6L 2002-2005--------在2002, 2003, 2004 and 2005年的每个月的最后一个星期五的上午10:15触发
0 15 10 ? * 6#3-----------------在每个月的第三个星期五的上午10:15触发
0 0 12 1/5 * ?------------------从每月的第一天起每过5天的中午12:00时触发
0 11 11 11 11 ?-----------------在每个11月11日的上午11:11时触发.

在每个11月11日的上午11:11时触发.:0 0 0 * * ?
每周一0点:0 0 0 ? * MON 或者 0 0 0 ? * 2 (注:1=SUN,2=MON,3=TUE,4=WED,5=THU,6=FRI,7=SAT)
每月1日0点: 0 0 0 1 * ?
每年1月1日0点:0 0 0 1 1 ?或者 0 0 0 1 JAN ?(注:1-12月依次是JAN, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV, DEC)
2046年8月1日0点:0 0 0 1 8 ? 2046
每隔5秒执行一次:*/5 * * * * ?
每隔1分钟执行一次:0 */1 * * * ?
每天23点执行一次:0 0 23 * * ?
每天凌晨1点执行一次:0 0 1 * * ?
每月1号凌晨1点执行一次:0 0 1 1 * ?
每月最后一天23点执行一次:0 0 23 L * ?
每周星期天凌晨1点实行一次:0 0 1 ? * L
在26分、29分、33分执行一次:0 26,29,33 * * * ?
每天的0点、13点、18点、21点都执行一次:0 0 0,13,18,21 * * ?
每隔5分钟执行一次:0 0/5 * * * ?
0 0 12 * * ? 在每天中午12:00触发
0 15 10 ? * * 每天上午10:15 触发
0 15 10 * * ? 每天上午10:15 触发
0 15 10 * * ? * 每天上午10:15 触发
0 15 10 * * ? 2005 在2005年中的每天上午10:15 触发
0 * 14 * * ? 每天在下午2:00至2:59之间每分钟触发一次
0 0/5 14 * * ? 每天在下午2:00至2:59之间每5分钟触发一次
0 0/5 14,18 * * ? 每天在下午2:00至2:59和6:00至6:59之间的每5分钟触发一次
0 0-5 14 * * ? 每天在下午2:00至2:05之间每分钟触发一次
0 10,44 14 ? 3 WED 每三月份的星期三在下午2:00和2:44时触发
0 15 10 ? * MON-FRI 从星期一至星期五的每天上午10:15触发
0 15 10 15 * ? 在每个月的每15天的上午10:15触发
0 15 10 L * ? 在每个月的最后一天的上午10:15触发
0 15 10 ? * 6L 在每个月的最后一个星期五的上午10:15触发
0 15 10 ? * 6L 2002-2005 在2002, 2003, 2004 and 2005年的每个月的最后一个星期五的上午10:15触发
0 15 10 ? * 6#3 在每个月的第三个星期五的上午10:15触发