cron 表达式生成
Cron Builder
每个字段一个输入框,旁边写着允许的取值范围,键入就拼出 cron 表达式,每改一次就把对应的执行计划显示出来。
逐字段拼出一条 cron 表达式,每个字段旁边是它的取值范围和含义,接下来几次执行随你输入更新。它和解析器是同一个界面、字段可编辑,因为拼一条和读一条是同一个问题的两个方向。
表达式
五个字段,或者在最前面加上秒的六个字段。`@daily`、`@hourly` 之类也能用。
用大白话说
星期一到星期五在 09:00 执行。
一个字段一个字段地搭
| 字段 | 值 | 含义 |
|---|---|---|
| 分0-59 | 0分钟`*/15` 是每一刻钟,`15` 是每小时的第 15 分。 | |
| 时0-23 | 9点一律 24 小时制,除非调度器另有规定,一律用服务器的时区。 | |
| 日1-31 | 每天`L` 是最后一天。写 31 的话,短的月份就直接不触发。 | |
| 月1-12 或 JAN-DEC | 每月名称不区分大小写。 | |
| 星期0-7 或 SUN-SAT | 星期一到星期五0 和 7 都是星期日。`5#3` 是第三个星期五,`5L` 是最后一个。 |
接下来的执行
时区
UTC
按上面选的时区计算,而不是按浏览器的。夏令时跳过的钟面时间,这里也跳过。
怎么用
从预设开始
每小时、每天三点、工作日九点、每月 1 号、每月最后一天。大多数计划离这几个只差一处改动。
编辑你需要的字段
每个字段有自己的输入框,名字下方写着合法范围。上方的白话句子随你输入自己改写。
对照接下来几次执行确认
用你的调度器所在的时区,不是你自己的。一个看起来对却在错误的小时运行的计划,几乎总是时区问题,不是字段写错。
常见问题
怎么每 90 分钟运行一次?
一条表达式做不到。cron 的字段是彼此独立的,所以分钟字段里的 `*/90` 是非法的,也没有办法表达一个不能整除一小时的周期。两条表达式,或者一个支持间隔的调度器,才是答案。
我该加秒字段吗?
只在你的调度器要六个字段时——Quartz 和 Spring 要,Unix cron 不要,而且会拒绝这条表达式。这里的按钮能加上和去掉它,让你看到同一个计划的两种写法。
为什么 31 在二月不触发?
因为没有 2 月 31 日——cron 不会收到最后一天,它就是不匹配。`L` 是表示「当月最后一天」的扩展,前提是你的调度器支持它。
可以从这些接进来
接下来
这些工具吃得下当前工具的产出,结果可以直接送过去。
cron 表达式解读
Cron Parser
用大白话解释一条 cron 表达式,并按选定时区列出接下来几次执行的时刻。
Kubernetes Secret 解码
Kubernetes Secret Decoder
把 Secret 清单里的每个 Base64 值都解出来,改完再编码回去,直接就能 apply。
时区换算
Timezone Converter
把同一个时刻换算到多个时区,并用重叠时段表来安排跨地区的会议。
Base64 编码解码
Base64 Encoder & Decoder
对文本和文件做 Base64 与 Base64URL 编解码,UTF-8 处理正确。
curl 转代码
curl to Code
把一条 curl 命令转成 fetch、axios、Python requests、Go、PHP 或 PowerShell 代码。
文本哈希计算
Text Hash
算出字符串的 MD5、SHA-1、SHA-256、SHA-384、SHA-512 和 CRC-32,输出可选大写或 Base64。