Linux下Jenkins如何进行任务调度
导读:Linux下Jenkins任务调度实践 一 核心方式总览 定时构建 Build periodically:在任务配置中按Cron语法定义固定频率,适合例行构建、报表生成等。 轮询SCM Poll SCM:按Cron定期检查代码仓库变更,有...
Linux下Jenkins任务调度实践
一 核心方式总览
- 定时构建 Build periodically:在任务配置中按Cron语法定义固定频率,适合例行构建、报表生成等。
- 轮询SCM Poll SCM:按Cron定期检查代码仓库变更,有更新则触发构建,适合无法在代码托管侧配置Webhook的环境。
- 事件触发 Webhook:如安装Generic Webhook Trigger插件,由Git等外部系统推送事件触发构建,实时性强。
- Pipeline 内调度:在Jenkinsfile的**triggers { cron(…) } **中定义计划任务,便于与代码一起版本化管理。
- 延迟与安静期:通过Quiet period(安静期)或quietPeriod选项设置触发后的等待时间,用于错峰或避免并发。
- 远程执行:使用如Publish Over SSH插件在任务步骤中执行远程命令,实现跨机编排。
二 配置步骤与示例
- 定时构建(Freestyle)
- 进入任务配置 → 构建触发器 → 勾选Build periodically。
- 在“日程表”填入Cron表达式,例如:H/15 * * * *** 表示每隔15分钟执行一次;H 2 * * 1-5 表示每周一至周五02:00**执行。
- 字段含义:MINUTE(0–59) HOUR(0–23) DOM(1–31) MONTH(1–12) DOW(0–7,0和7均为周日);支持H(散列,均衡负载)、*/X、M-N、A,B等语法。
- 轮询SCM(Freestyle)
- 构建触发器 → 勾选Poll SCM。
- 示例:H/5 * * * *** 每5分钟**检查一次仓库,有变更即触发构建。
- Webhook触发(事件驱动)
- 安装Generic Webhook Trigger插件并启用。
- 在任务配置中勾选Generic Webhook Trigger,配置Token与可选的Payload条件。
- 在代码托管(如GitHub/GitLab)设置Webhook URL:http://JENKINS_URL/generic-webhook-trigger/invoke?token=YOUR_TOKEN。
- Pipeline内调度
- 示例:
pipeline { agent any triggers { cron('H 10 * * 1-5') } // 工作日 10:00 stages { stage('Build') { steps { echo 'Building..' } } } }
- 示例:
- 延迟与安静期
- 全局:管理界面 → Configure System → Quiet period(秒),对所有未设置项目生效。
- 项目级(Pipeline):在**options { quietPeriod(0) } **中设置,覆盖全局。
- 远程执行(跨机)
- 安装Publish Over SSH插件;管理界面 → Configure System → 配置SSH Servers(主机、端口、凭据)。
- 任务配置 → 构建步骤 → Send files or execute commands over SSH → 填写Exec command。
三 Cron语法与常用示例
- 语法字段:MINUTE HOUR DOM MONTH DOW(支持H散列、*/X、M-N、A,B)。
- 示例
- *0 2 * * :每天02:00执行。
- *H/15 * * * :每隔15分钟执行一次(分散负载)。
- H 10 * * 1-5:工作日10:00执行。
- 0 10,16 * * :每天10:00与16:00*各执行一次。
四 最佳实践与排错要点
- 使用H(如H H(0-7) * * 1-5)分散在整点内的触发时刻,避免“雪崩效应”。
- 需要“有变更才构建”用Poll SCM;能配置事件回调时优先Webhook,减少空轮询。
- 跨机任务建议用Publish Over SSH或Jenkins Agent分布式执行,提升吞吐与隔离性。
- 控制并发与顺序:结合Quiet period、Throttle builds或Lockable Resources插件,避免资源竞争。
- 时区问题:Jenkins Web UI中设置系统时区(如Asia/Shanghai),确保计划任务按预期时间触发。
- 日志与诊断:查看系统管理 → 系统日志与项目 → 构建历史 → 控制台输出;必要时开启Build after save验证表达式。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Linux下Jenkins如何进行任务调度
本文地址: https://pptw.com/jishu/765554.html
