39.2. 创建 Cron Job
Cron Job 配置由以下关键部分组成:
- 以 cron 格式指定 的计划:
- 创建下一个作业时使用的作业模板。
- 可选期限(秒为单位),如果作业因任何原因而错过预定时间,则在此期限内启动作业。错过的作业执行计为失败的作业。若不指定,则没有期限。
concurrency
Policy
:可选的并发策略,指定如何对待 cron 作业中的并发作业。只能指定以下并发策略之一。若未指定,默认为允许并发执行。-
Allow
,允许 Cron 作业并发运行。 -
Forbid
,禁止并发运行。如果上一运行尚未结束,则跳过下一运行。 -
Replace
,取消当前运行的作业并替换为新作业。
-
-
可选标志,允许挂起 Cron Job。若设为
true
,则会挂起所有后续执行。
以下是 CronJob
资源的示例:
apiVersion: batch/v1beta1 kind: CronJob metadata: name: pi spec: schedule: "*/1 * * * *" 1 jobTemplate: 2 spec: template: metadata: labels: 3 parent: "cronjobpi" spec: containers: - name: pi image: perl command: ["perl", "-Mbignum=bpi", "-wle", "print bpi(2000)"] restartPolicy: OnFailure 4
注意
所有 cron 任务调度
时间均基于启动该作业的 master 的时区。
您还可以使用 oc run
在一个命令中创建并启动 cron 任务。以下命令会创建并启动与上一示例中指定的相同的 cron 任务:
$ oc run pi --image=perl --schedule='*/1 * * * *' \ --restart=OnFailure --labels parent="cronjobpi" \ --command -- perl -Mbignum=bpi -wle 'print bpi(2000)'
使用 oc run
时,--schedule
选项接受采用 cron 格式的调度计划。
注意
在创建 cron 任务时,oc run
仅支持 Never
或 OnFailure
重启策略(--restart
)。
提示
删除您不再需要的 Cron Job:
$ oc delete cronjob/<cron_job_name>
这样可防止生成不必要的工件。