Kubernetes CronJob,不要将错过的任务排队

Kubernetes CronJob,不要将错过的任务排队

我读了这些文档但仍然认为我不明白这startingDeadlineSeconds是什么意思。

我试图弄清楚,如果当前作业正在运行(使用),是否可以避免重新安排作业,CronJob而是让下一个预定的工作将从中断的地方继续进行。

我有一些工作完成时间非常不稳定(我需要解决的另一个问题)。可能需要 1 小时或最多 24 小时。所以有时候,如果一项工作需要一整天才能完成,但我已将其安排为每 12 小时运行一次,那么我会得到一个队列,其中有另一项工作,当上一项工作完成后会立即启动。

我真的很想绝不排队作业,并且只在下一个计划的时间。

以下是配置示例

apiVersion: batch/v1beta1
kind: CronJob
metadata:
  name: my-job
spec:
  schedule: "0 */2 * * *"
  concurrencyPolicy: Forbid
  successfulJobsHistoryLimit: 1
  jobTemplate:
    spec:
      backoffLimit: 1
      template:
        spec:
          containers:
          - name: my-job
            image: my-image
            command: ["do_something"]
          restartPolicy: OnFailure

请注意,这do_somethign可能需要 1 小时,也可能需要 4 小时。我希望的是,当需要 4 小时时,不是已经将第二项作业排入队列,如果花费的时间更少,该作业本来可以正常运行。

使用 Kubernetes CronJob 可以实现这个吗?

相关内容