Jenkins能否按不同时间间隔触发所有选择参数的构建?
实现Jenkins任务按不同时间间隔运行各选择参数
当然可以实现,下面给两种实用方案:
方案一:使用「Build periodically with parameters」插件(推荐)
这个插件专门支持带参数的定时构建,操作简单高效:
- 先在Jenkins插件管理里安装「Build periodically with parameters」插件,安装完成后重启Jenkins。
- 打开你的目标任务配置页,找到「Build periodically with parameters」选项(替代原来的「Build periodically」)。
- 给每个选项配置独立的定时规则和参数:
- 比如给Option1设置Cron表达式
0 0 * * *(每天凌晨运行),参数填写Name=Option1 - 给Option2设置Cron表达式
0 */6 * * *(每6小时运行一次),参数填写Name=Option2 - 给Option3设置Cron表达式
0 0 * * 0(每周日凌晨运行),参数填写Name=Option3
- 比如给Option1设置Cron表达式
- 保存配置即可,每个参数会按各自的时间间隔自动触发任务。
方案二:用调度任务触发(无需额外插件)
如果不想装插件,可以创建一个专门的调度任务,通过脚本判断时间来触发目标任务的不同参数:
- 创建一个新的Jenkins任务(比如命名为「任务调度器」),选择流水线类型。
- 在流水线脚本中写入以下代码(替换
你的目标任务名为实际任务名称):
node { def now = new Date() // 每天凌晨触发Option1 if (now.getHours() == 0 && now.getMinutes() == 0) { build job: '你的目标任务名', parameters: [[$class: 'StringParameterValue', name: 'Name', value: 'Option1']] } // 每6小时触发Option2(整点时刻) if (now.getMinutes() == 0 && now.getHours() % 6 == 0) { build job: '你的目标任务名', parameters: [[$class: 'StringParameterValue', name: 'Name', value: 'Option2']] } // 每周日凌晨触发Option3 if (now.getDay() == 0 && now.getHours() == 0 && now.getMinutes() == 0) { build job: '你的目标任务名', parameters: [[$class: 'StringParameterValue', name: 'Name', value: 'Option3']] } }
- 给这个调度任务设置Cron表达式
* * * * *(每分钟运行一次),让它持续检查时间条件,符合时触发对应参数的任务。
注意事项
- 确保Jenkins服务器的系统时间准确,否则定时规则会失效。
- 目标任务需要开启「Trigger builds remotely」权限(在任务配置的Build Triggers里勾选),可以设置认证令牌提升安全性。
内容的提问来源于stack exchange,提问作者Rasik
相关产品推荐
相关产品推荐

