я прочел эти документы несколько раз, но все равно не понимаю, что 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 часа. Я бы хотел, чтобы на то, чтобы не поставили в очередь второе задание, которое обычно выполнялось бы, если бы занимало меньше времени.
Возможно ли это с Kubernetes CronJob?