You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jenkins能否按不同时间间隔触发所有选择参数的构建?

实现Jenkins任务按不同时间间隔运行各选择参数

当然可以实现,下面给两种实用方案:

方案一:使用「Build periodically with parameters」插件(推荐)

这个插件专门支持带参数的定时构建,操作简单高效:

  1. 先在Jenkins插件管理里安装「Build periodically with parameters」插件,安装完成后重启Jenkins。
  2. 打开你的目标任务配置页,找到「Build periodically with parameters」选项(替代原来的「Build periodically」)。
  3. 给每个选项配置独立的定时规则和参数:
    • 比如给Option1设置Cron表达式 0 0 * * *(每天凌晨运行),参数填写 Name=Option1
    • 给Option2设置Cron表达式 0 */6 * * *(每6小时运行一次),参数填写 Name=Option2
    • 给Option3设置Cron表达式 0 0 * * 0(每周日凌晨运行),参数填写 Name=Option3
  4. 保存配置即可,每个参数会按各自的时间间隔自动触发任务。

方案二:用调度任务触发(无需额外插件)

如果不想装插件,可以创建一个专门的调度任务,通过脚本判断时间来触发目标任务的不同参数:

  1. 创建一个新的Jenkins任务(比如命名为「任务调度器」),选择流水线类型。
  2. 在流水线脚本中写入以下代码(替换你的目标任务名为实际任务名称):
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']]
    }
}
  1. 给这个调度任务设置Cron表达式 * * * * *(每分钟运行一次),让它持续检查时间条件,符合时触发对应参数的任务。

注意事项

  • 确保Jenkins服务器的系统时间准确,否则定时规则会失效。
  • 目标任务需要开启「Trigger builds remotely」权限(在任务配置的Build Triggers里勾选),可以设置认证令牌提升安全性。

内容的提问来源于stack exchange,提问作者Rasik

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 21:54:14