我读了这些文档但仍然认为我不明白这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 可以实现这个吗?