Ubuntu下Jenkins任务调度的主要方法
这是Jenkins原生的定时任务配置方式,无需依赖系统级Cron,适合大多数场景。
秒 分 时 日 月 星期
,共6字段),例如:
0 10,16 * * *
:每天上午10点和下午4点各执行一次;H/15 * * * *
:每隔15分钟执行一次(H
表示随机分钟,避免并发冲突);0 2 * * 1-5
:周一至周五凌晨2点执行。若任务采用Pipeline模式(推荐用于复杂流程),可直接在Pipeline脚本中通过triggers
块配置定时触发。
pipeline {
agent any
triggers {
cron('H 10 * * 1-5') // 每周一到周五上午10点执行(H表示随机分钟)
}
stages {
stage('Build') {
steps {
echo 'Building the project...'
}
}
}
}
保存脚本后,Pipeline会按照定义的时间规则自动运行。若需要在系统层面统一管理定时任务(如同时调度多个服务),可通过编辑系统Cron表(crontab
)调用Jenkins的远程API触发任务。
systemctl status jenkins
),并获取任务对应的API Token(在任务配置→“Configure”→“API Token”中生成);crontab -e
命令编辑当前用户的Cron表;分 时 * * * /usr/bin/curl -X POST "http://<jenkins_server>:8080/job/<job_name>/build?token=<api_token>"
示例(每天凌晨2点触发名为my_job
的任务):0 2 * * * /usr/bin/curl -X POST "http://localhost:8080/job/my_job/build?token=my_api_token"
④ 保存后,Cron会定期调用Jenkins API启动任务。jenkins-cli.jar
),通过build
命令的--delay
参数设置任务启动前的等待时间(如--delay 0sec
表示立即触发),适合需要动态调整延迟的场景;options
块中添加quietPeriod
参数(单位:秒),用于延迟任务的正式执行(如quietPeriod(30)
表示30秒后启动),避免因频繁触发导致的资源竞争。systemctl start jenkins
);localhost
为服务器IP或域名;