有超时的Cron Job

时间:2019-03-30 11:59:18

标签: kubernetes

是否可以为kubernetes CronJob提供超时?

我需要安排一个按照Cron时间表运行的任务,但是我需要将此任务的执行时间限制为仅20秒。如果任务运行时间超过20秒,则应终止该任务。 我尝试使用.spec.startingDeadlineSeconds,但这无济于事。

2 个答案:

答案 0 :(得分:1)

使用cronjob.spec.jobTemplate.spec.activeDeadlineSeconds

  

领域:

     

activeDeadlineSeconds        指定相对于作业的startTime的持续时间(以秒为单位)        在系统尝试终止之前可能处于活动状态;值必须是        正整数

From documentation:

  

终止工作的另一种方法是设置有效期限。做   通过将Job的.spec.activeDeadlineSeconds字段设置为   秒数。

     

activeDeadlineSeconds适用于作业持续时间,否   创建多少个Pod无关紧要。一旦工作达成   activeDeadlineSeconds,其所有Pod均已终止,并且Job   状态将变为类型:失败原因:DeadlineExceeded。

答案 1 :(得分:0)

下面是一个简单的例子,取自 https://kubernetes.io/docs/tasks/job/automated-tasks-with-cron-jobs/,并添加了一个小时的超时时间:

apiVersion: batch/v1
kind: CronJob
metadata:
  name: hello
spec:
  schedule: "*/1 * * * *"
  jobTemplate:
    spec:
      activeDeadlineSeconds: 3600
      template:
        spec:
          containers:
          - name: hello
            image: busybox
            imagePullPolicy: IfNotPresent
            command:
            - /bin/sh
            - -c
            - date; echo Hello from the Kubernetes cluster
          restartPolicy: OnFailure