运行 Kubernetes 调度的 Spring Batch

问题描述 投票:0回答:1

我有一个 Spring Batch 作业并将其部署在 Kunernetes 上。我还使用 Kubernetes cronjob 配置每天上午 10 点运行它。像这样的例子

apiVersion: batch/v1

kind: CronJob

metadata:

  name: hello

spec:

  schedule: "0 10 * * *"

我担心如果在上午 10 点,我有 3 个 Pod 运行,那么我的作业将运行 3 次。 Kubernetes 是否可以防止这种情况,让我的作业只运行 1 次?

spring kubernetes cron spring-batch kubernetes-cronjob
1个回答
0
投票

为了避免这种情况,您可以使用

concurrencyPolicy
字段。
concurrencyPolicy
字段可设置为
Allow
Forbid
Replace
。如果设置为
Forbid
,则cron作业不允许并发作业,有效防止重复。

apiVersion: batch/v1
kind: CronJob
metadata:
  name: hello
spec:
  schedule: "0 10 * * *"
  concurrencyPolicy: Forbid
© www.soinside.com 2019 - 2024. All rights reserved.