涅槃博客 - cron
type: channel
link: https://www.niepan.org/tag/cron/
items: 定时任务中的Cron表达式详细说明

定时任务中的Cron表达式详细说明
type: item
date: 2021-12-22T18:10:00+08:00
description: Cron表达式在执行云助手命令时，您可以调用API通过Timed参数和Frequency参数设置命令的执行时间。Frequency的取值为一个Cron表达式，适用于周期性执行、日常维护、在某时刻需要完成的单次任务等场景。Cron表达式介绍cron 表达式是一个具有时间含义的字符串，字符串以5个分为6个域，格式为X X X X X X X，（其中X是一个域的占位符。单个域有多个取值时，使用半角逗号,隔开取值。每个域可以是确定的取值，也可以是具有逻辑意义的特殊字符）每一个域代表一个时间含义。 格式如下：* * * * * * *秒 分 时 日 月 周 年 * * * * * * * cron表达式 ┬ ┬ ┬ ┬ ┬ ┬ ┬ ┆ ┆ ┆ ┆ ┆ ┆ ┆ ┆ ┆ ┆ ┆ ┆ ┆ └───────── 年（可选）[1970-2099] ┆ ┆ ┆ ┆ ┆ └────────────── 周（必选）[0-7/SUN-SAT] ┆ ┆ ┆ ┆ └─────────────────── 月（必选）[1-12] ┆ ┆ ┆ └──────────────────────── 日（必选）[1-31] ┆ ┆ └───────────────────────────── 时（必选）[0-23] ┆ └────────────────────────────────── 分（必选）[0-59] └─────────────────────────────────────── 秒（必选）[0-59]通常定义 “年” 的部分可以省略，实际常用的由 前六部分组成域取值下表为Cron表达式中六个域能够取的值以及支持的特殊字符。域是否必需取值范围特殊字符秒是[0~59]整数* , - /分钟是[0~59]整数* , - /小时是[0~23]整数* , - /日期是[1~31]整数* , - / ? L W月份是[1~12]或[JAN~ DEC]* , - /星期是[0~7]或[SUN~SAT] (0=SUN)* , - / ? L #年否1970-2099, - * /特殊字符Cron表达式中的每个域都支持一定数量的特殊字符，每个特殊字符有其特殊含义。特殊字符含义示例*所有可能的值。在月域中，*表示每个月；在星期域中，*表示星期的每一天。,列出枚举值。在分钟域中，5,20表示分别在5分钟和20分钟触发一次。-范围。在分钟域中，5-20表示从5分钟到20分钟之间每隔一分钟触发一次。/指定数值的增量。在分钟域中，0/15表示从第0分钟开始，每15分钟。在分钟域中3/20表示从第3分钟开始，每20分钟。?不指定值，仅日期和星期域支持该字符。当日期或星期域其中之一被指定了值以后，为了避免冲突，需要将另一个域的值设为?。L单词Last的首字母，表示最后一天，仅日期和星期域支持该字符。说明 指定L字符时，避免指定列表或者范围，否则，会导致逻辑问题。在日期域中，L表示某个月的最后一天。在星期域中，L表示一个星期的最后一天，也就是星期日（SUN）。如果在L前有具体的内容，例如，在星期域中的6L表示这个月的最后一个星期六。W除周末以外的有效工作日，在离指定日期的最近的有效工作日触发事件。W字符寻找最近有效工作日时不会跨过当前月份，连用字符LW时表示为指定月份的最后一个工作日。在日期域中5W，如果5日是星期六，则将在最近的工作日星期五，即4日触发。如果5日是星期天，则将在最近的工作日星期一，即6日触发；如果5日在星期一到星期五中的一天，则就在5日触发。#确定每个月第几个星期几，仅星期域支持该字符。在星期域中，4#2表示某月的第二个星期四。取值示例以下为Cron表达式的取值示例。示例说明0 15 10 ? * *每天上午10:15执行任务0 15 10 * * ?每天上午10:15执行任务0 0 12 * * ?每天中午12:00执行任务0 0 10,14,16 * * ?每天上午10:00点、下午14:00以及下午16:00执行任务0 0/30 9-17 * * ?每天上午09:00到下午17:00时间段内每隔半小时执行任务0 * 14 * * ?每天下午14:00到下午14:59时间段内每隔1分钟执行任务0 0-5 14 * * ?每天下午14:00到下午14:05时间段内每隔1分钟执行任务0 0/5 14 * * ?每天下午14:00到下午14:55时间段内每隔5分钟执行任务0 0/5 14,18 * * ?每天下午14:00到下午14:55、下午18:00到下午18:55时间段内每隔5分钟执行任务0 0 12 ? * WED每个星期三中午12:00执行任务0 15 10 15 * ?每月15日上午10:15执行任务0 15 10 L * ?每月最后一日上午10:15执行任…