pod调度之CrontJob:定时任务
2020-07-18 17:50
21 查看
Cron Job 管理基于时间的 Job,即:
- 在给定时间点只运行一次
- 周期性地在给定时间点运行
一个 CronJob 对象类似于 crontab (cron table)文件中的一行。它根据指定的预定计划周期性地运行一个 Job。
我们需要掌握Cron Job的定时表达式,它基本上照搬了Linux Cron的表达式,区别是第1位是分钟而不是秒,格式如下:
Minutes Hours DayofMonth Moth DaYofWeek Year
其中每个域都可出现的字符如下:
Minutes:可出现“,”“-”“*”“/”这4个字符,有效范围为0~59的整数。 Hours:可出现“,”“-”“*”“/”这4个字符,有效范围为0~23的整数。 DayofMonth:可出现“,”“-”“*”“/”“?”“L”“W”“C”这8个字符,有效范围为0~31的整数。 Month:可出现“,”“-”“*”“/”这4个字符,有效范围为1~12的整数或JAN~DEC。 DayofWeek:可出现“,”“-”“*”“/”“?”“L”“C”“#”这8个字符,有效范围为1~7的整数或SUN~SAT。1表示星期天,2表示星期一,以此类推。 表达式中的特殊字符“*”与“/”的含义如下。 *:表示匹配该域的任意值,假如在Minutes域使用“*”,则表示每分钟都会触发事件。 /:表示从起始时间开始触发,然后每隔固定时间触发一次,例如在Minutes域设置为5/20,则意味着第1次触发在第5min时,接下来每20min触发一次,将在第25min、第45min等时刻分别触发。
编写一个CrontJob 的配置文件。
任务每隔1分钟执行一次,运行的镜像时busybox,执行的命令是shell脚本,脚本执行时会爱控制台输出当前时间和字符串“hello from the kubernetes cluster”
[root@bogon ~]# vim cron.yaml apiVersion: batch/v1beta1 kind: CronJob metadata: name: hello spec: schedule: "*/1 * * * *" jobTemplate: spec: template: spec: containers: - name: hello image: busybox args: - /bin/sh - -c - date; echo Hello from the Kubernetes cluster restartPolicy: OnFailure
[root@bogon ~]# kubectl create -f cron.yaml cronjob.batch/hello created
查看cronjob资源对象
[root@bogon ~]# kubectl get cronjob NAME SCHEDULE SUSPEND ACTIVE LAST SCHEDULE AGE hello */1 * * * * False 1 46s 7m51s
直观的了解cron job定期触发任务执行的历史和现状:
[root@bogon ~]# kubectl get cronjob --watch NAME SCHEDULE SUSPEND ACTIVE LAST SCHEDULE AGE hello */1 * * * * False 1 4s 10m hello */1 * * * * False 0 31s 10m hello */1 * * * * False 1 1s 11m hello */1 * * * * False 0 11s 11m
删除cron job
[root@bogon ~]# kubectl delete cronjob hello cronjob.batch "hello" deleted
相关文章推荐
- spring 使用注解来调度定时任务
- 任务调度开源框架Quartz动态添加、修改和删除定时任务
- Spring 集成Quartz Scheduler 定时调度任务 Example
- 浅谈定时任务的分布式调度
- Spring整合TimerTask实现定时任务调度
- 第十一节: 封装通用的定时调度框架,实现新增、删除、开启、暂停计划任务:
- Spring Task --- 定时任务调度
- springmvc中实现quartz定时任务(每分钟的第3秒执行任务调度方法)
- Spring与Quartz的整合实现定时任务调度
- 基于Quartz定时调度任务(详解)
- quartz任务调度框架实现任务定时执行,不传参的配置(一)
- Spring与Quartz的整合实现定时任务调度
- Linux中的定时任务调度—crontab命令
- python中的轻量级定时任务调度库:schedule
- 定时任务 Quartz调度(采用配置文件)
- 任务调度开源框架Quartz动态添加、修改和删除定时任务
- Spring + Quartz 轻松搞定web任务定时调度
- Timer定时任务调度Api及优缺点
- Spring整合定时任务调度框架Quartz实
- 定时任务调度工具之Timer(二)