gpt4 book ai didi

kubernetes - 如果已经有作业在运行,如何防止在 Kubernetes 中执行 Cronjob?并发策略 :Forbid stops the cron job execution altogether

转载 作者:行者123 更新时间:2023-12-02 12:14:29 25 4
gpt4 key购买 nike

我需要一个每 5 分钟运行一次的 cron 作业。如果较早的 cron 作业仍在运行,则不应启动另一个 cron 作业。我尝试将并发策略设置为禁止,但 cron 作业根本无法运行。

  1. 作业按预期每 5 分钟启动一次,但即使较早的 cron 作业尚未完成,它也会启动
spec:
concurrencyPolicy: Allow
schedule: '*/5 * * * *'
  1. 这应该可以解决问题,但 cron 作业永远不会用这种方法启动
spec:
concurrencyPolicy: Forbid
schedule: '*/5 * * * *'
  1. 将 startingDeadlineSeconds 设置为 3600,甚至设置为 10,都没有什么不同。
spec:
concurrencyPolicy: Forbid
schedule: '*/5 * * * *'
startingDeadlineSeconds: 10

有人可以帮我吗?

最佳答案

来自 kubernetes 文档

并发策略指定如何处理由此 cron 作业创建的作业的并发执行。该规范可能仅指定以下并发策略之一:

允许(默认):cron 作业允许并发运行作业

Forbid:cron作业不允许并发运行;如果到了新作业运行的时间并且之前的作业运行尚未完成,则 cron 作业将跳过新作业运行

替换:如果到了新作业运行的时间并且之前的作业运行尚未完成,则 cron 作业将用新作业运行替换当前运行的作业运行

在您的情况下,“concurrencyPolicy: Forbid”应该有效。如果之前的作业仍在运行,它将不允许运行新作业。在您的情况下,问题不在于 concurrencyPolicy。

可能与startingDeadlineSeconds有关。你能把它去掉试试吗

关于kubernetes - 如果已经有作业在运行,如何防止在 Kubernetes 中执行 Cronjob?并发策略 :Forbid stops the cron job execution altogether,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58690902/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com