如果已经有作业在运行,如何防止在Kubernetes中执行Cronjob? concurrencyPolicy:禁止完全停止cron作业的执行

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

  1. Job按预期每5分钟启动一次,但是即使较早的cron作业尚未完成,它也会启动

规格:
  concurrencyPolicy:允许
  日程:'* / 5 * * * '

  1. 这应该可以解决问题,但这种方法永远无法启动cron作业

规格:
  concurrencyPolicy:禁止
  日程:'* / 5 * * * *'

  1. 将startingDeadlineseconds设置为3600,甚至设置为10,并没有什么不同。

规格:
  concurrencyPolicy:禁止
  时间表:“ * / 5 * * * *”
  startingDeadlineseconds:10

有人可以在这里帮助我吗?

huminyan 回答:如果已经有作业在运行,如何防止在Kubernetes中执行Cronjob? concurrencyPolicy:禁止完全停止cron作业的执行

来自kubernetes文档

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

允许(默认):cron作业允许同时运行的作业

禁止:cron作业不允许并发运行;如果是时候开始新的作业并且之前的作业还没有完成,则cron作业会跳过新的作业

替换:如果是时候开始新的任务运行并且之前的任务尚未完成,则cron任务将当前正在运行的任务运行替换为新的任务运行

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

这可能与startingDeadlineSeconds有关。您可以删除它并尝试

本文链接:https://www.f2er.com/3167748.html

大家都在问