Closed2

k8sのcronjobで次回実行時刻に到達してもジョブが終わってない場合は新しいpod立ち上げないようにしたい

esakaesaka

cronjobで5分定期で実行する処理を組んだ、たまにデータが溜まりすぎると5分以上かかることがあり
5分すぎると同時に2pod立ち上がってしまった

データ取得元で排他制御とか入れてなかったので重複処理が走ってしまった。
理想は排他制御入れて、同時実行で捌くのがいいと思うんだけど
作ってたのが、データを受け取ってさらに外部のAPIヘ投げるやつで
外部APIが時間単位の呼び出し数制限があるので、同時実行数を1に抑えるやり方したかった

concurrencyPolicyを設定すればいいらしい
デフォはallowで、上記のように次回実行時刻になったら立ち上げる
Forbidにすれば、立ち上がらないらしい

esakaesaka
apiVersion: batch/v1beta1
kind: CronJob
metadata:
  name: sample
spec:
  schedule: "*/5 * * * *"
  concurrencyPolicy: Forbid
  jobTemplate:
    ...
このスクラップは2021/11/21にクローズされました