ZBLOG

cron 定时格式

cron 是一种用于配置定时任务的表达式格式,常见于 Linux 的 crontab、Kubernetes CronJob、Spring Scheduler 等场景。其基本结构由 5个时间字段(或 6个字段,含秒)组成,每个字段表示不同的时间单位。


1. 标准 cron 表达式(5字段)

* * * * * <command>
│ │ │ │ │
│ │ │ │ └─── 星期几 (0-7, 0和7均代表周日)
│ │ │ └───── 月份 (1-12)
│ │ └─────── 日 (1-31)
│ └───────── 小时 (0-23)
└─────────── 分钟 (0-59)

常用示例

表达式 说明
*/5 * * * * 每5分钟执行一次
0 */2 * * * 每2小时的整点执行(如2:00,4:00)
30 3 * * * 每天凌晨3:30执行
0 0 */3 * * 每3天的午夜执行
0 12 * * MON 每周一中午12点执行

2. cron扩展格式(6字段,含秒)

某些系统(如 Spring、Quartz)支持更精确的秒级控制:

<秒> <分> <时> <日> <月> <周>

示例

0/10 * * ? * MON-FRI   # Spring中:工作日的每10秒执行一次

3. crontab文件示例

Linux /etc/crontab 或用户级 crontab -e

# Sync logs every day at midnight
0 0 * * * /usr/bin/sync_logs.sh

# Backup database every Sunday at 3:15 AM
15 3 */7 root /usr/bin/backup_db.sh

4. Kubernetes CronJob

在 K8s YAML中定义:

apiVersion: batch/v1
kind: CronJob
metadata:
 name: my-job
spec:
 schedule: "*/5 */1 */1 */1"   # ⚠️实际需符合标准5字段格式!
 jobTemplate:
   spec:
     template:
       containers:
       - name: task
         image: alpine         
         command: ["echo", "Hello Cron"]

注意事项

  1. 时区问题:默认使用系统时区,可通过环境变量(如 TZ=Asia/Shanghai)调整。
  2. 特殊字符
    • *:任意值
    • ,:多个值(如 MON,WED,FRI)
    • -:范围(如 9-17)
    • /:间隔(如 */10)
  3. 冲突处理:若“日”和“周”同时指定,可能触发两次任务(建议明确指定一个)。

如果需要验证表达式,可使用在线工具:Cron Expression Generator


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=23869

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?