cron 表达式解读

举报
yd_249383650 发表于 2023/03/12 12:44:05 2023/03/12
【摘要】 ​  cron 是一个已经存在了很长时间的 UNIX 工具,因此它的调度能力很强大 并得到证明。CronTrigger 类基于 cron 的调度功能。CronTrigger 使用“cron 表达式”,它能够创建触发时间表,例如:“在上午 8:00 每个 周一至周五“或”每月最后一个星期五凌晨 1:30”。cron 表达式很强大,但可能会非常令人困惑。你可以使用这个工具直接进行转换在线Cron...

  cron 是一个已经存在了很长时间的 UNIX 工具,因此它的调度能力很强大 并得到证明。CronTrigger 类基于 cron 的调度功能。

CronTrigger 使用“cron 表达式”,它能够创建触发时间表,例如:“在上午 8:00 每个 周一至周五“或”每月最后一个星期五凌晨 1:30”。

cron 表达式很强大,但可能会非常令人困惑。你可以使用这个工具直接进行转换

在线Cron表达式生成器 (qqe2.com)https://cron.qqe2.com/

1、cron 表达式

语法:秒 分 时 日 月 周 年(Spring 不支持)

Cron Trigger TutorialA full-featured, Java-based, In-process job scheduler.http://www.quartz-scheduler.org/documentation/quartz-2.3.0/tutorials/crontrigger.html编辑


 特殊字符: ,:枚举;

(cron="7,9,23 * * * * ?"):任意时刻的 7,9,23 秒启动这个任务;

-:范围:

(cron="7-20 * * * * ?"):任意时刻的 7-20 秒之间,每秒启动一次

*:任意; 指定位置的任意时刻都可以

/:步长;

(cron="7/5 * * * * ?"):第 7 秒启动,每 5 秒一次;

(cron="*/5 * * * * ?"):任意秒启动,每 5 秒一次; ?:(出现在日和周几的位置):为了防止日和周冲突,在周和日上如果要写通配符使 用? (cron="* * * 1 * ?"):每月的 1 号,启动这个任务;

L:(出现在日和周的位置)”,

last:最后一个

(cron="* * * ? * 3L"):每月的最后一个周二

W:

Work Day:工作日

(cron="* * * W * ?"):每个月的工作日触发

(cron="* * * LW * ?"):每个月的最后一个工作日触发

#:第几个

(cron="* * * ? * 5#2"):每个月的第 2 个周 4

 2、cron 示例

0 0 12 * * ? Fire at 12pm (noon) every day
0 15 10 ? * * Fire at 10:15am every day
0 15 10 * * ? Fire at 10:15am every day
0 15 10 * * ? * Fire at 10:15am every day
0 15 10 * * ? 2005 Fire at 10:15am every day during the year 2005
0 * 14 * * ? Fire every minute starting at 2pm and ending at 2:59pm, every day
0 0/5 14 * * ? Fire every 5 minutes starting at 2pm and ending at 2:55pm, every day
0 0/5 14,18 * * ? Fire every 5 minutes starting at 2pm and ending at 2:55pm, AND fire every 5 minutes starting at 6pm and ending at 6:55pm, every day
0 0-5 14 * * ? Fire every minute starting at 2pm and ending at 2:05pm, every day
0 10,44 14 ? 3 WED Fire at 2:10pm and at 2:44pm every Wednesday in the month of March.
0 15 10 ? * MON-FRI Fire at 10:15am every Monday, Tuesday, Wednesday, Thursday and Friday
0 15 10 15 * ? Fire at 10:15am on the 15th day of every month
0 15 10 L * ? Fire at 10:15am on the last day of every month
0 15 10 L-2 * ? Fire at 10:15am on the 2nd-to-last last day of every month
0 15 10 ? * 6L Fire at 10:15am on the last Friday of every month
0 15 10 ? * 6L Fire at 10:15am on the last Friday of every month
0 15 10 ? * 6L 2002-2005 Fire at 10:15am on every last friday of every month during the years 2002, 2003, 2004 and 2005
0 15 10 ? * 6#3 Fire at 10:15am on the third Friday of every month
0 0 12 1/5 * ? Fire at 12pm (noon) every 5 days every month, starting on the first day of the month.
0 11 11 11 11 ? Fire every November 11th at 11:11am.



【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。