概述
默认并发策略允许第二次运行在前一次未结束时启动,导致同一窗口被重复处理。显式选择并发策略、设置截止时长与历史上限,并以幂等性兜底,可让调度行为可预期且不留垃圾。
关键步骤
- 依据重叠是否安全决定并发策略。
- 设置 activeDeadlineSeconds 以终止卡住的任务。
- 设置成功与失败历史上限以限制存储。
- 对允许重叠的情况让任务幂等。
验证
- 并发行为与所选策略一致。
- 卡住的任务按截止被终止。
- 旧 Job 不会无限堆积。
- 重叠不造成重复生效。
注意事项
- CronJob 调度是尽力而为,在高负载或挂起时可能漏触发。
- 并发策略只约束同一 CronJob 的重叠,不处理多集群重复。
适用范围
本条目围绕「为 CronJob 设置并发策略」给出可复制的步骤、验证方式与常见问题,适合需要按此流程落地的工程团队。执行时请结合自身上下文调整命令与阈值,并在变更前后留存证据,便于后续复核与回滚。
apiVersion: batch/v1
kind: CronJob
spec:
schedule: "0 2 * * *"
concurrencyPolicy: Forbid
startingDeadlineSeconds: 300
jobTemplate:
spec:
activeDeadlineSeconds: 1800
template:
spec: { restartPolicy: OnFailure, containers: [{ name: job, image: app:1.0 }] }