我有一个 Spring Batch 作业并将其部署在 Kunernetes 上。我还使用 Kubernetes cronjob 配置每天上午 10 点运行它。像这样的例子
apiVersion: batch/v1
kind: CronJob
metadata:
name: hello
spec:
schedule: "0 10 * * *"
我担心如果在上午 10 点,我有 3 个 Pod 运行,那么我的作业将运行 3 次。 Kubernetes 是否可以防止这种情况,让我的作业只运行 1 次?
为了避免这种情况,您可以使用
concurrencyPolicy
字段。 concurrencyPolicy
字段可设置为 Allow
、Forbid
或 Replace
。如果设置为Forbid
,则cron作业不允许并发作业,有效防止重复。
apiVersion: batch/v1
kind: CronJob
metadata:
name: hello
spec:
schedule: "0 10 * * *"
concurrencyPolicy: Forbid