如何在Jenkins Pipeline(Groovy)中用Throttle功能限制任务运行频次
Jenkinsfile中使用Throttle功能的语法
要在Pipeline(Jenkinsfile)中实现Throttle功能,需借助Throttle Concurrent Builds插件,核心通过throttle步骤配置限制规则。针对你「每3天最多运行1次」的需求,示例语法如下:
pipeline { agent any options { throttle( categories: ['db-task-throttle'], // 自定义分类名,用于标识节流规则组 maxConcurrentPerNode: 1, // 单节点最多同时运行1个实例 maxConcurrentTotal: 1, // 全局最多同时运行1个实例 throttleEnabled: true, throttleOption: 'project', // 仅对当前项目生效,选category则同分类任务共享规则 period: 72, // 时间周期,单位为小时(3天=72小时) count: 1 // 该周期内允许的最大运行次数 ) } stages { stage('耗时数据库任务') { steps { echo '执行数据库查询等核心逻辑' // 你的任务执行代码 } } } }
关键参数说明
categories:自定义分类标识,若多个任务需要共享同一节流规则,设置相同分类名即可period+count:组合定义时间周期内的运行上限,这里72小时+1次正好匹配你每3天最多运行1次的需求maxConcurrentPerNode/maxConcurrentTotal:确保同一时间只有1个任务实例在运行,避免失败重试或计划触发导致的重复执行
注意事项
- 必须提前安装Throttle Concurrent Builds插件,否则
throttle步骤会执行失败 - 若需要更复杂的时间窗口限制(比如固定每周特定日期),可结合任务的
cron计划配置,但核心的频次限制仍通过period和count实现
内容的提问来源于stack exchange,提问作者Hannah Shachar
相关产品推荐
相关产品推荐

