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
  1. 计划作业。在本例中,作业将每分钟运行一次。
  2. 作业模板。类似于 作业示例
  3. 为此 Cron Job 生成的作业设置一个标签。
  4. pod 的重启策略。这不适用于作业控制器。详情请参阅 已知问题和限制
注意

所有 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 仅支持 NeverOnFailure 重启策略(--restart)。

提示

删除您不再需要的 Cron Job:

$ oc delete cronjob/<cron_job_name>

这样可防止生成不必要的工件。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.