zoukankan      html  css  js  c++  java
  • Cronjob 简介

    Cronjob 简介

    Cronjob 是一个计划任务,与 Linux 系统 Crontab 一样,格式也是基本一样。

    格式如下


    具体见 https://en.wikipedia.org/wiki/Cron#Overview

    Cronjob 结构草图

    Cronjob 运行

    CronJob 使用 Job 对象来完成任务。CronJob 每次运行时都会创建一个 Job 对象,Job 会创建一个 Pods 来执行任务,任务执行完成后停止容器。

    Cronjob 用途

    CronJob 在特定时间 或 按特定间隔运行任务。CronJob 非常适合用于自动执行任务,例如备份、报告、发送电子邮件或清理任务。

    Cronjob 例子

    apiVersion: batch/v1beta1
    kind: CronJob
    metadata:
      name: demo # Cronjob的名称
      labels:
        app: demo
        cron: hello
    spec:
      concurrencyPolicy: Forbid
      failedJobsHistoryLimit: 1
      jobTemplate:
        spec:
          template:
            metadata:
              labels:
                app: demo
                cron: hello
            spec:
              containers:
              - image: harbor.example.com/hello:v1
                imagePullPolicy: IfNotPresent
                name: hello
                command: [/bin/bash]
                args:
                - -c
                - echo "Hello World!!!" # job 具体执行的任务
                resources:
                  limits:
                    cpu: 300m
                    memory: 300Mi
                  requests:
                    cpu: 100m
                    memory: 100Mi
              nodeSelector:
                label: test
              imagePullSecrets:
                - name: harbor-certification
              restartPolicy: Never
      schedule: "15 * * * *"  # job执行的周期,cron格式的字符串
      successfulJobsHistoryLimit: 1

    Cronjob 重要参数解释
    • 调度

      .spec.schedule 是 .spec 中必需的字段,它的值是 Cron 格式字的符串,例如:0 * * * *,或者 @hourly,根据指定的调度时间 Job 会被创建和执行。

    • 启动 Job 的期限(秒级别)

      .spec.startingDeadlineSeconds字段是可选的。它表示启动 Job 的期限(秒级别),如果因为任何原因而错过了被调度的时间,那么错过执行时间的 Job 将被认为是失败的。如果没有指定,则没有期限。

    • Job 历史版本限制

      默认没有限制,所有成功和失败的 Job 都会被保留。然而,当运行一个 Cron Job 时,很快就会堆积很多 Job,推荐设置这两个字段的值。设置为0则不会保存,这两个字段与jobTemplate同级。

      • .spec.successfulJobsHistoryLimit:# 字段是可选的,成功完成的作业保存多少个
      • .spec.failedJobsHistoryLimit:# 字段是可选的,失败的作业保存多少个
    • 并发策略

      .spec.concurrencyPolicy 字段也是可选的。它指定了如何处理被 Cron Job 创建的 Job 的并发执行。只允许指定下面策略中的一种:

      注意,当前策略只能应用于同一个 Cron Job 创建的 Job。如果存在多个 Cron Job,它们创建的 Job 之间总是允许并发运行。

      • Allow(默认):允许并发运行 Job
      • Forbid:禁止并发运行,如果前一个还没有完成,则直接跳过下一个
      • Replace:取消当前正在运行的 Job,用一个新的来替换
    • 挂起

      .spec.suspend 字段也是可选的。如果设置为 true,后续所有执行都将被挂起。它对已经开始执行的 Job 不起作用。默认值为 false

    • 重启策略

      restartPolicy 仅支持 Never 或 OnFailure

    引用: https://mp.weixin.qq.com/s?__biz=MzA4MzIwNTc4NQ==&mid=2247484043&idx=1&sn=c2366a8688ac000023176a24df314977&chksm=9ffb497da88cc06bf0b39ad4064282fc4814847afd29dd47cb300e82a9f88ceb948097803490&mpshare=1&scene=23&srcid=&sharer_sharetime=1577230035415&sharer_shareid=85ecb9201cba173f8c63eaf47b0c5559#rd

  • 相关阅读:
    左偏树
    论在Windows下远程连接Ubuntu
    ZOJ 3711 Give Me Your Hand
    SGU 495. Kids and Prizes
    POJ 2151 Check the difficulty of problems
    CodeForces 148D. Bag of mice
    HDU 3631 Shortest Path
    HDU 1869 六度分离
    HDU 2544 最短路
    HDU 3584 Cube
  • 原文地址:https://www.cnblogs.com/fengjian2016/p/12095308.html
Copyright © 2011-2022 走看看