Jenkins cron定时构建触发器
from: https://www.jenkins.io/doc/book/pipeline/syntax/#cron-syntax
以下内容为根据Jenkins官方文档cron表达式部分翻译过来,使用机翻加个人理解补充内容,包括举例。
目录
- 介绍
- 举例:
- 设置方法
- 方法一:
- 方法二:
- 其他举例
- @yearly
- @annually
- @weekly
- @daily
- @midnight
- @hourly
- 一些问题:
- jenkins中定时构建 在一个pipeline中可以同时设置daily 和weekly吗?可以每个定时器触发不同的stage,且可以daily只触发daily的stage吗?
- triggers里能写两个cron表达式吗?
- 一个pipeline能写两个triggers吗?
- config中Build periodically定义cron和pipeline里triggers里的cron表达式都写,哪个会生效?
- 拓展阅读:
介绍
Jenkins cron 语法遵循 cron 实用程序的语法(有细微差别)。具体来说,每行由 5 个由 TAB 或空格分隔的字段组成:
分钟 小时 日 月 一周中的第几日
要为一个字段指定多个值,可以使用以下运算符。按照优先顺序,
*
指定所有有效值
M-N
指定一个值范围
M-N/X
或 */X
以 X
为间隔步进通过指定范围或整个有效范围
A,B,...,Z
枚举多个值
H
表示有效值范围内任意一个时间点
为了允许定期调度的任务在系统上产生均匀的负载,应尽可能使用符号 H
(“哈希”)。例如,对十几个日常Job使用 0 0 * * *
将导致午夜出现大幅峰值。相比之下,使用 H H * * *
仍会每天执行每个Job一次,但不是同时执行所有Job,更好地利用有限的资源。
H
符号可以与范围一起使用。例如,H H(0-7) * * *
表示 12:00 AM(午夜)到 7:59 AM 之间的某个时间。您还可以将步长间隔与H
一起使用,带或不带范围。
H
符号可以被认为是一定范围内的随机值,但它实际上是Job名称的哈希值,而不是随机函数,因此该值对于任何给定项目都保持稳定。
请注意,对于月份字段,由于月份长度可变,*/3
或 H/3
等短周期在大多数月末附近不会一致工作。例如,*/3
将在长月的第 1 天、第 4 天、…第 31 天运行,然后在下个月的第二天运行。哈希值始终选择在 1-28 范围内,因此 H/3
将在月底的运行之间产生 3 到 6 天的间隙。较长的周期也会有不一致的长度,但效果可能相对不太明显。
空行和以 # 开头的行将作为注释被忽略。 此外,还支持@yearly
、@annually
、@monthly
、@weekly
、@daily
、@midnight
和@hourly
作为方便的别名。它们使用哈希系统进行自动平衡。例如,@hourly
与 H * * * *
相同,可以表示一小时内的任何时间。 @midnight
实际上是指 12:00 AM 到 2:59 AM 之间的某个时间。
举例:
每十五分钟一次 (perhaps at :07, :22, :37, :52)
triggers{ cron('H/15 * * * *') }
每半个小时,隔十分钟一次 (three times, perhaps at :04, :14, :24)
triggers{ cron('H(0-29)/10 * * * *') }
周一到周五从上午九点到下午四点,每隔两个小时,在45分钟的时候运行一次,即每个工作日从上午 9:45 开始到下午 3:45 结束,每两小时一次。
triggers{ cron('45 9-16/2 * * 1-5') }
每个工作日上午 9 点到下午 5 点之间每两小时一次(可能是上午 10:38、中午 12:38、下午 2:38、下午 4:38)
triggers{ cron('H H(9-16)/2 * * 1-5') }
除12月外,每月1日和15日每天一次
triggers{ cron('H H 1,15 1-11 *') }
设置方法
方法一:
在Jenkins中,可以在config界面配置:
注: 第一位必须要是 H
比如 H H * * 1'
表示 每周一任意时间执行一次
填写完Schedule 可查看下方的提示确认触发时间。(可用这种方式进行调试)
方法二:
cron表达式写到pipeline中(推荐)
pipeline {agent anytriggers {cron('0 12 * * 1') // 每周一的12点触发任务}stages {stage('Build') {steps {// 构建任务的步骤}}}
}
其他举例
# Would last have run at Monday, March 11, 2024 11:36:08 AM CST; would next run at Monday, March 11, 2024 11:38:08 AM CST.
# 周一,每两分钟执行一次
H/2 * * * 1# Would last have run at Monday, March 11, 2024 10:47:25 AM CST; would next run at Monday, March 11, 2024 12:47:25 PM CST.
# 周一,每两小时执行一次
H */2 * * 1 或者 H H/2 * * 1# 每天的晚上11点运行
pipline {triggers {cron('H 23 * * *')}
}# 每天的凌晨00:01分运行,第一位数值不能设置为*
pipline {triggers {cron('01 00 * * *') #此配置表示凌晨00:01自动触发}
}
@yearly
@annually
@weekly
@daily
@midnight
@hourly
一些问题:
jenkins中定时构建 在一个pipeline中可以同时设置daily 和weekly吗?可以每个定时器触发不同的stage,且可以daily只触发daily的stage吗?
好像不行,试过很多种方法,暂时没有实现。如果有什么好的方法,欢迎留言一起讨论。
目前实现daily,weekly,方法是拆分成两个pipeline,一个cron表达式控制一个job。
triggers里能写两个cron表达式吗?
不行,会报错
pipeline {agent anytriggers {cron('19 13 * * *') cron('20 13 * * *')}stages {stage('Build') {steps {echo "aa"}}}
}
报错截图:
一个pipeline能写两个triggers吗?
不能,会报错
pipeline {agent anytriggers {cron('23 13 * * *')}triggers {cron('22 13 * * *')}stages {stage('Build') {steps {echo "aa"}}}
}
报错截图:
config中Build periodically定义cron和pipeline里triggers里的cron表达式都写,哪个会生效?
在Jenkins中,如果config中的Build periodically定义了cron表达式,同时在pipeline脚本中的triggers部分也定义了cron表达式,那么以pipeline脚本中定义的cron表达式为准,即pipeline中定义的cron表达式会生效。因此,当pipeline中定义了cron触发器时,会忽略config中的Build periodically定义的cron表达式。
拓展阅读:
详细cron表达式的用法可以参考:
https://tool.lu/crontab
https://blog.csdn.net/u011441473/article/details/80902472
相关文章:

Jenkins cron定时构建触发器
from: https://www.jenkins.io/doc/book/pipeline/syntax/#cron-syntax 以下内容为根据Jenkins官方文档cron表达式部分翻译过来,使用机翻加个人理解补充内容,包括举例。 目录 介绍举例:设置方法方法一:方法二…...
【编程向导】JavaScript-创建对象一期讲解
工厂模式 工厂模式 是用来创建对象的一种最常用的设计模式。工厂模式不暴露创建对象的具体逻辑,而是将逻辑封装在一个函数中,那么这个函数就可以被视为一个工厂。工厂模式常见于大型项目,例如 jQuery 的 $ 对象,我们创建选择器对…...

【MySQL性能优化】- 一文了解MVCC机制
MySQL理解MVCC 😄生命不息,写作不止 🔥 继续踏上学习之路,学之分享笔记 👊 总有一天我也能像各位大佬一样 🏆 博客首页 怒放吧德德 To记录领地 🌝分享学习心得,欢迎指正ÿ…...
性能测试-Redis
一、测试注意点 1、缓存预热 如果程序初次运行,此时由于数据尚未加载到缓存,则程序的响应时间会明显变长 注意事项: 性能测试的时候 出现 非常不稳定的现象程序刚启动,它的性能 明显 低于 已经运行一段时间的 1.1 测试缓存没…...
浅析C++的指针与引用
浅析C的指针与引用 文章目录 浅析C的指针与引用一、对比引用与指针二、引用左值引用右值引用引用折叠 三、指针与引用的性能差距总结 一、对比引用与指针 总论: 引用指针必须初始化可以不初始化不能为空可以为空不能更换目标可以更换目标 引用必须初始化ÿ…...

【消息队列开发】 实现消息删除逻辑
文章目录 🍃前言🌲实现步骤🚩检验参数的合法性🚩读取Message数据🚩二进制转为message🚩isValid 设置为无效🚩写入文件🚩更新统计文件🚩特别注意🚩完整代码 ⭕…...

【golang】28、用 httptest 做 web server 的 controller 的单测
文章目录 一、构建 HTTP server1.1 model.go1.2 server.go1.3 curl 验证 server 功能1.3.1 新建1.3.2 查询1.3.3 更新1.3.4 删除 二、httptest 测试2.1 完整示例2.2 实现逻辑2.3 其他示例2.4 用 TestMain 避免重复的测试代码2.5 gin 框架的 httptest 一、构建 HTTP server 1.1…...
296.【华为OD机试】污染水域 (图的多源BFS—JavaPythonC++JS实现)
🚀点击这里可直接跳转到本专栏,可查阅顶置最新的华为OD机试宝典~ 本专栏所有题目均包含优质解题思路,高质量解题代码(Java&Python&C++&JS分别实现),详细代码讲解,助你深入学习,深度掌握! 文章目录 一. 题目-污染水域二.解题思路三.题解代码Python题解代码…...

C语言——动态内存分配
前言:通过前面的学习,我们知道C语言中在内存中开辟空间的方法有:变量和数组。既然拥有了开辟空间的方法,我们为什么还要学习动态内存分配呢? int val 20; //在内存中开辟四个字节的空间 int arr[10] { 0 }; //在内…...

瑞_23种设计模式_策略模式
文章目录 1 策略模式(Strategy Pattern)★1.1 介绍1.2 概述1.3 策略模式的结构1.4 策略模式的优缺点1.5 策略模式的使用场景 2 案例一2.1 需求2.2 代码实现 3 案例二3.1 需求3.2 代码实现 4 JDK源码解析(Comparator) 🙊…...

使用 OpenAI 的 text-embedding 构建知识向量库并进行相似搜索
OpenAI的embedding模型的使用 首先第一篇文章中探讨和使用了ChatGPT4的API-Key实现基础的多轮对话和流式输出,完成了对GPT-API的一个初探索,那第二步打算使用OpenAI的embedding模型来构建一个知识向量库,其实知识向量库本质上就是一个包含着一…...

设计模式学习笔记 - 规范与重构 - 5.如何通过封装、抽象、模块化、中间层解耦代码?
前言 《规范与重构 - 1.什么情况下要重构?重构什么?又该如何重构?》讲过,重构可以分为大规模高层重构(简称 “大型重构”)和小规模低层次重构(简称 “小型重构”)。大型重构是对系统…...

YOLOv9实例分割教程|(二)验证教程
专栏地址:目前售价售价59.9,改进点30个 专栏介绍:YOLOv9改进系列 | 包含深度学习最新创新,助力高效涨点!!! 一、验证 打开分割验证文件,填入数据集配置文件、训练好的权重文件&…...

python 基础知识点(蓝桥杯python科目个人复习计划63)
今日复习内容:做题 例题1:蓝桥骑士 问题描述: 小蓝是蓝桥王国的骑士,他喜欢不断突破自我。 这天蓝桥国王给他安排了N个对手,他们的战力值分别为a1,a2,...,an,且按顺序阻挡在小蓝的前方。对于这些对手小…...

IAB视频广告标准《数字视频和有线电视广告格式指南》之 简介、目录及视频配套广告 - 我为什么要翻译介绍美国人工智能科技公司IAB系列(2)
写在前面 谈及到中国企业走入国际市场,拓展海外营销渠道的时候,如果单纯依靠一个小公司去国外做广告,拉渠道,找代理公司,从售前到售后,都是非常不现实的。我们可以回想一下40年前,30年前&#x…...

Python网络基础爬虫-python基本语法
文章目录 逻辑语句if,else,elifforwhile异常处理 函数与类defpassclass 逻辑语句 熟悉C/C语言的人们可能很希望Python提供switch语句,但Python中并没有这个关键词,也没有这个语句结构。但是可以通过if-elif-elif-…这样的结构代替,或者使用字…...

产品推荐 - 基于星嵌 OMAPL138+国产FPGA的DSP+ARM+FPGA三核开发板
1 评估板简介 基于TI OMAP-L138(定点/浮点DSP C674xARM9) FPGA处理器的开发板; OMAP-L138是TI德州仪器的TMS320C6748ARM926EJ-S异构双核处理器,主频456MHz,高达3648MIPS和2746MFLOPS的运算能力; FPGA…...

【微服务学习笔记(一)】Nacos、Feign、Gateway基础使用
【微服务学习笔记(一)】Nacos、Feign、Gateway基础使用 总览Nacos安装配置Nacos注册中心服务多级存储模型负载均衡规则环境隔离 配置管理配置拉取配置热更新多服务共享配置 Feign远程调用配置性能优化Fegin使用 统一网关Gateway搭建网关路由断言工厂&…...

使用maven打生产环境可执行包
一、程序为什么要打包 程序打包的主要目的是将项目的源代码、依赖库和其他资源打包成一个可执行的文件或者部署包,方便程序的发布和部署。以下是一些打包程序的重要理由: 方便部署和分发:打包后的程序可以作为一个独立的实体,方便…...

springboot+ssm基于vue.js的客户关系Crm管理系统
系统包含两种角色:管理员、用户,主要功能如下。 ide工具:IDEA 或者eclipse 编程语言: java 数据库: mysql5.7 框架:ssmspringboot都有 前端:vue.jsElementUI 详细技术:springbootSSMvueMYSQLMAVEN 数据库…...

css实现圆环展示百分比,根据值动态展示所占比例
代码如下 <view class""><view class"circle-chart"><view v-if"!!num" class"pie-item" :style"{background: conic-gradient(var(--one-color) 0%,#E9E6F1 ${num}%),}"></view><view v-else …...
React Native 开发环境搭建(全平台详解)
React Native 开发环境搭建(全平台详解) 在开始使用 React Native 开发移动应用之前,正确设置开发环境是至关重要的一步。本文将为你提供一份全面的指南,涵盖 macOS 和 Windows 平台的配置步骤,如何在 Android 和 iOS…...

AI Agent与Agentic AI:原理、应用、挑战与未来展望
文章目录 一、引言二、AI Agent与Agentic AI的兴起2.1 技术契机与生态成熟2.2 Agent的定义与特征2.3 Agent的发展历程 三、AI Agent的核心技术栈解密3.1 感知模块代码示例:使用Python和OpenCV进行图像识别 3.2 认知与决策模块代码示例:使用OpenAI GPT-3进…...
oracle与MySQL数据库之间数据同步的技术要点
Oracle与MySQL数据库之间的数据同步是一个涉及多个技术要点的复杂任务。由于Oracle和MySQL的架构差异,它们的数据同步要求既要保持数据的准确性和一致性,又要处理好性能问题。以下是一些主要的技术要点: 数据结构差异 数据类型差异ÿ…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个生活电费的缴纳和查询小程序
一、项目初始化与配置 1. 创建项目 ohpm init harmony/utility-payment-app 2. 配置权限 // module.json5 {"requestPermissions": [{"name": "ohos.permission.INTERNET"},{"name": "ohos.permission.GET_NETWORK_INFO"…...

安全突围:重塑内生安全体系:齐向东在2025年BCS大会的演讲
文章目录 前言第一部分:体系力量是突围之钥第一重困境是体系思想落地不畅。第二重困境是大小体系融合瓶颈。第三重困境是“小体系”运营梗阻。 第二部分:体系矛盾是突围之障一是数据孤岛的障碍。二是投入不足的障碍。三是新旧兼容难的障碍。 第三部分&am…...

R 语言科研绘图第 55 期 --- 网络图-聚类
在发表科研论文的过程中,科研绘图是必不可少的,一张好看的图形会是文章很大的加分项。 为了便于使用,本系列文章介绍的所有绘图都已收录到了 sciRplot 项目中,获取方式: R 语言科研绘图模板 --- sciRplothttps://mp.…...

android13 app的触摸问题定位分析流程
一、知识点 一般来说,触摸问题都是app层面出问题,我们可以在ViewRootImpl.java添加log的方式定位;如果是touchableRegion的计算问题,就会相对比较麻烦了,需要通过adb shell dumpsys input > input.log指令,且通过打印堆栈的方式,逐步定位问题,并找到修改方案。 问题…...

从“安全密码”到测试体系:Gitee Test 赋能关键领域软件质量保障
关键领域软件测试的"安全密码":Gitee Test如何破解行业痛点 在数字化浪潮席卷全球的今天,软件系统已成为国家关键领域的"神经中枢"。从国防军工到能源电力,从金融交易到交通管控,这些关乎国计民生的关键领域…...

Vue ③-生命周期 || 脚手架
生命周期 思考:什么时候可以发送初始化渲染请求?(越早越好) 什么时候可以开始操作dom?(至少dom得渲染出来) Vue生命周期: 一个Vue实例从 创建 到 销毁 的整个过程。 生命周期四个…...