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

Jenkins报Invalid trigger type "parameterizedCron" 定时触发不生效

问题根因
  • Invalid trigger type "parameterizedCron" 报错直接原因:parameterizedCron 不是Jenkins核心内置的触发器,必须提前安装 Parameterized Scheduler 插件才能识别使用,未安装时Jenkins无法解析该触发器配置。
  • 流水线存在基础语法错误:原脚本在pipeline { agent any }处提前闭合了pipeline根块,导致后续的parameters、triggers、stages配置全部游离在pipeline结构外,属于声明式流水线的严重语法错误,Jenkins根本不会正常加载后续的定时规则配置。
  • 定时规则不生效的通用机制问题:Jenkins声明式流水线新增或修改triggers配置后,必须手动触发执行一次流水线,新的定时规则才会被Jenkins注册到调度队列中,否则配置不会生效。
  • 阶段执行逻辑不符合需求:原脚本中A、B阶段未配置任何跳过规则,无论什么触发方式都会执行;且Stage C的when判断逻辑env.RUN || env.ENV == 'uat'存在漏洞,只要RUN参数为真、或者环境选择uat就会执行C,无法实现「定时触发时仅运行C阶段」的目标。
修正后完整流水线脚本
pipeline {
    agent any

    parameters {
        choice(
            name: 'ENV',
            choices: ['uat', 'perf'],
            description: '部署环境选择'
        )
        booleanParam(
            name: 'RUN',
            defaultValue: true,
            description: '是否执行C阶段'
        )       
    }

    triggers {
        parameterizedCron('''
            // 请替换为实际需要的夜间执行cron表达式,示例为每日14点17分触发,0 2 * * * 代表每日凌晨2点触发
            17 14 * * * %RUN=true;ENV=uat
        ''')
    }

    stages {
        stage ('A') {
            when {
                // 非定时触发时才执行A阶段
                not {
                    triggeredBy 'TimerTrigger'
                }
            }
            steps {
                echo "执行阶段A逻辑"
            }
        }

        stage ('B') {
            when {
                // 非定时触发时才执行B阶段
                not {
                    triggeredBy 'TimerTrigger'
                }
            }
            steps {
                echo "执行阶段B逻辑"
            }
        }

        stage('C') {
            when {
                anyOf {
                    // 定时触发时固定执行C阶段
                    triggeredBy 'TimerTrigger'
                    // 手动触发时满足RUN为true且环境为uat才执行C阶段
                    allOf {
                        expression { return params.RUN }
                        expression { params.ENV == 'uat' }
                    }
                }
            }
            steps {
                echo "执行阶段C逻辑"
                // 此处编写C阶段实际业务代码
            }
        }
    }
}
配置操作步骤
  • 进入Jenkins插件管理界面,搜索Parameterized Scheduler插件完成安装,安装后重启Jenkins服务。
  • 将修正后的脚本粘贴到流水线配置中,替换cron表达式为实际需要的夜间执行时间,cron格式为分 时 日 月 周。
  • 保存流水线配置后,手动点击一次构建执行任务,等待任务执行完成后,定时规则就会自动生效,后续到设定时间会自动触发任务,且仅执行Stage C阶段。
  • 后续手动触发任务时,可通过参数选择控制C阶段是否执行,A、B阶段会按正常流程运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 20:39:22