设置startingDeadlineSeconds
为较大的值或未设置(默认值)。
同时设置.spec.concurrencyPolicy
为Forbid
和 CronJobs 跳过新作业运行,而先前创建的作业仍在运行。
如果 startingDeadlineSeconds
设置为较大的值或未设置(默认值)并且如果concurrencyPolicy
设置为Forbid
,则作业在失败时将不会运行。
您可以将并发策略字段添加到规范中以定义您的 CronJob (.spec.concurrencyPolicy),但这是可选的。
它指定如何处理由此 CronJob 创建的作业的并发执行。规范可能只指定以下三种并发策略之一:
- 允许(默认) - cron 作业允许同时运行的作业
- 禁止- cron 作业不允许并发运行;如果是运行新作业的时间并且之前的作业运行尚未完成,则 cron 作业会跳过新作业运行
- 替换- 如果是运行新作业的时间并且之前的作业运行尚未完成,则 cron 作业将当前正在运行的作业运行替换为新的作业运行
很高兴知道货币政策仅适用于同一个 CronJob 创造的工作。如果有多个 CronJobs,则始终允许它们各自的作业同时运行。
如果 CronJob 未能在其预定时间创建,则将其计为错过。例如,如果concurrencyPolicy
设置为Forbid
并且在之前的计划仍在运行时尝试计划 CronJob,则它会被视为错过。
对于每个 CronJob,CronJob 控制器检查它在从上次计划时间到现在的持续时间内错过了多少计划。如果错过的计划超过 100 个,则它不会启动作业并记录错误
您可以在此处找到更多信息:CronJobs
和 AutomatedTask
。
我希望它有所帮助。