任务负载是负责批量处理短暂的一次性任务(short lived one-off tasks),即仅执行一次的任务,它保证批处理任务的一个或多个 Pod 成功结束。
任务负载的这种用完即停止的特性特别适合一次性任务,比如持续集成,配合云容器实例按秒计费,真正意义上做到按需使用。
apiVersion: batch/v1 kind: Job metadata: name: pi-with-timeout namespace: cci-namespace-test1 spec: completions: 50 # 运行的次数,即Job结束需要成功运行的Pod个数 parallelism: 5 # 并行运行Pod的数量,默认为1 backoffLimit: 5 # 表示失败Pod的重试最大次数,超过这个次数不会继续重试。 activeDeadlineSeconds: 10 # 表示Pod超期时间,一旦达到这个时间,Job即其所有的Pod都会停止。 template: # Pod定义 spec: containers: - name: pi image: perl command: - perl - "-Mbignum=bpi" - "-wle" - print bpi(2000) restartPolicy: Never
根据completions和parallelism的设置,可以将Job划分为以下几种类型。
Job类型 |
说明 |
使用示例 |
---|---|---|
一次性Job |
创建一个Pod直至其成功结束 |
数据库迁移 |
固定结束次数的Job |
依次创建一个Pod运行直至completions个成功结束 |
处理工作队列的Pod |
固定结束次数的并行Job |
依次创建多个Pod运行直至completions个成功结束 |
多个Pod同时处理工作队列 |
并行Job |
创建一个或多个Pod直至有一个成功结束 |
多个Pod同时处理工作队列 |
相比Job,CronJob就是一个加了定时的Job,CronJob执行时是在指定的时间创建出Job,然后由Job创建出Pod。
apiVersion: batch/v1beta1 kind: CronJob metadata: name: cronjob-example namespace: cci-namespace-test1 spec: schedule: "0,15,30,45 * * * *" # 定时相关配置 jobTemplate: # Job的定义 spec: template: spec: restartPolicy: OnFailure containers: - name: main image: pi
cron的格式从前到后就是:
如 "0,15,30,45 * * * * " ,前面逗号隔开的是分钟,后面第一个* 表示每小时,第二个 * 表示每个月的哪天,第三个表示每月,第四个表示每周的哪天。
如果你想要每个月的第一天里面每半个小时执行一次,那就可以设置为" 0,30 * 1 * * " 如果你想每个星期天的3am执行一次任务,那就可以设置为 "0 3 * * 0"。
更详细的cron格式说明请参见https://zh.wikipedia.org/wiki/Cron。
1. 接口描述 接口请求域名: batch.tencentcloudapi.com 。 用于重试作业中失败...
1.你不能让所有人满意,因为不是所有的人都是人! 2.没有事情不要找我,有事更...
云手机的GPS定位信息是模拟GPS卫星获取的经纬度值,数值单位为度,使用十进制小...
城市公共安全的三大转变 我们国家提出智慧城市的概念,到现在已经十多年。智慧城...
前言: EuiAdmin是一个基于vue+element-ui,让开发者只关注于功能开发的开源后台...
一、前言 大家好,我是崔艳飞。前两天给大家分享了Python自动化文章:手把手教你...
图像算法在智能零售柜上的应用 在人工智能加持背景下的新零售业态中,无人智能货...
案例背景 高校健康打卡项目发起于北京大学软件与微电子学院,是该学院张齐勋老师...
在本教程中,我们将学习如何使用JavaScript查找字符串中的元音数量,在初级开发...
有很多的接口都只是执行个SQL查询之后就直接返回给前端 那么我们能不能把这些SQL...