前言
之前同事是直接自己土炮用golang寫timer,
不過如果碰到執行時間過長,重複執行的話,
就要判斷一堆狀態,決定要不要做,
那就改用k8s的cronJob了吧。
正文
文件看一看(1) (2),好像就差不多了。
下面是測試,每兩分鐘執行一次,
但如果執行時間過長,是不是會在執行。
這邊關掉的是併發以及 暫停後續執行,
另外注意,gcp的cronjob是每10秒檢查一次狀態。
apiVersion: batch/v1beta1 # k8s after version 1.21 ,apiVersion: batch/v1
kind: CronJob
metadata:
name: hello
spec:
schedule: "*/2 * * * *" # min hour day Mon week
concurrencyPolicy: Forbid # 並發政策
startingDeadlineSeconds: 60 # 截止時限
suspend: true # 暫停後續執行
successfulJobsHistoryLimit: 3 # 歷史限制: 保存成功的數量
failedJobsHistoryLimit: 1 # 歷史限制: 保存失敗的數量
jobTemplate:
spec:
template:
spec:
containers:
- name: hello
image: busybox
args:
- /bin/sh
- -c
- echo "start"; date; echo "Hello, World! Sleep 150s"; sleep 150s; date;
restartPolicy: OnFailure
ref.
1. GCP-CronJob
2. k8s-CronJob
0 意見:
張貼留言