Jenkins cron定时构建触发器

这篇具有很好参考价值的文章主要介绍了Jenkins cron定时构建触发器。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

from: https://www.jenkins.io/doc/book/pipeline/syntax/#cron-syntax
以下内容为根据Jenkins官方文档cron表达式部分翻译过来,使用机翻加个人理解补充内容,包括举例。

介绍

Jenkins cron 语法遵循 cron 实用程序的语法(有细微差别)。具体来说,每行由 5 个由 TAB 或空格分隔的字段组成:
Jenkins cron定时构建触发器,Jenkins,运维,jenkins,运维

分钟 小时 日 月 一周中的第几日
要为一个字段指定多个值,可以使用以下运算符。按照优先顺序,
*指定所有有效值
M-N 指定一个值范围
M-N/X*/XX 为间隔步进通过指定范围或整个有效范围
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 作为方便的别名。它们使用哈希系统进行自动平衡。例如,@hourlyH * * * * 相同,可以表示一小时内的任何时间。 @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'表示 每周一任意时间执行一次
Jenkins cron定时构建触发器,Jenkins,运维,jenkins,运维
填写完Schedule 可查看下方的提示确认触发时间。(可用这种方式进行调试)

方法二:

cron表达式写到pipeline中(推荐)

pipeline {
    agent any
    triggers {
        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

Jenkins cron定时构建触发器,Jenkins,运维,jenkins,运维

@annually

Jenkins cron定时构建触发器,Jenkins,运维,jenkins,运维

@weekly

Jenkins cron定时构建触发器,Jenkins,运维,jenkins,运维

@daily

Jenkins cron定时构建触发器,Jenkins,运维,jenkins,运维

@midnight

Jenkins cron定时构建触发器,Jenkins,运维,jenkins,运维

@hourly

Jenkins cron定时构建触发器,Jenkins,运维,jenkins,运维

一些问题:

jenkins中定时构建 在一个pipeline中可以同时设置daily 和weekly吗?可以每个定时器触发不同的stage,且可以daily只触发daily的stage吗?

好像不行,试过很多种方法,暂时没有实现。如果有什么好的方法,欢迎留言一起讨论。
目前实现daily,weekly,方法是拆分成两个pipeline,一个cron表达式控制一个job。

triggers里能写两个cron表达式吗?

不行,会报错

pipeline {
    agent any
    triggers {
        cron('19 13 * * *') 
        cron('20 13 * * *')
    }
    stages {
        stage('Build') {
            steps {
                echo "aa"
            }
        }
    }
}

报错截图:
Jenkins cron定时构建触发器,Jenkins,运维,jenkins,运维

一个pipeline能写两个triggers吗?

不能,会报错

pipeline {
    agent any
    triggers {
        cron('23 13 * * *')
    }
    triggers {
        cron('22 13 * * *')
    }
    stages {
        stage('Build') {
            steps {
                echo "aa"
            }
        }
    }
}

报错截图:
Jenkins cron定时构建触发器,Jenkins,运维,jenkins,运维

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文章来源地址https://www.toymoban.com/news/detail-838995.html

到了这里,关于Jenkins cron定时构建触发器的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 脉冲触发的触发器(主从触发器)

    脉冲触发的动作特点: (1)触发器的翻转分两步动作。 第一步:当CLK以高电平为有效信号时,在CLK= 1期间主触发器接收输入端(S、R或J、K)的信号,被置成相应的状态,而从触发器不动。 第二步: CLK下降沿到来时从触发器按照主触发器的状态翻转,所以Q、Q’端状态的改变发生在

    2024年02月04日
    浏览(50)
  • 【FGPA】Verilog:JK 触发器 | D 触发器 | T 触发器 | D 触发器的实现

    0x00 JK 触发器 JK 触发器是 RS 触发器和 T 触发器的组合,有两个输入端 J 和 K,如果两个输入端都等于 1,则将当前值反转。 行为表

    2024年02月05日
    浏览(46)
  • 数据库触发器简介——修改数据的触发器、删除数据的触发器

    修改数据的触发器 更新数据 思考下面这个触发器会触发几次?几条数据就触发几次。

    2024年02月15日
    浏览(48)
  • 【MySQL触发器】触发器的使用、创建、修改及删除

    一、什么是触发器 二、创建触发器 ①创建一个insert事件触发器 ②创建一个delete 事件触发器  三、触发器包含多条执行语句 四、查看触发器  ①SHOW TRIGGERS语句查看触发器 ②查看系统表triggers实现查看触发器   五、触发器的删除       当我们对一个表进行数据操作时,需

    2023年04月08日
    浏览(55)
  • Verilog设计实现D触发器与JK触发器

    题目:         用Verilog实现以下电路:                 1. 带复位端的正边沿触发的D触发器;                 2.带复位端的正边沿触发的JK触发器。 包括sys_clk,复位信号sys_rst_n,输入信号key_in以及输出信号led_out; 采用行为级描述: testbench仿真代码编写:

    2024年04月28日
    浏览(77)
  • 脉冲触发的触发器

    唯一的不同在于时钟信号的控制不一样 前面的叫做 主触发器, 后面叫做 从触发器 为什么在一个时钟周期内只可能改变一次?(工作原理)  在时钟信号等于0期间,看看时钟信号的工作 CLK=1期间,主FF工作,从FF不工作,主FF形成一个同步SR触发器的功能 随着S,R变化, 但是接

    2024年02月09日
    浏览(44)
  • 电平触发的触发器

    目录 引言 电路分析 分析输入输出关系 时钟信号 同步SR触发器的工作原理 1.时钟信号等于0期间 2.时钟信号等于1期间 总结  电平触发的D触发器(D锁存器) 普通的SR锁存器没有任何抗干扰能力 我们要加控制信号,来抵抗干扰 比如说我们不把信号直接加在门上,我们可以再加

    2023年04月14日
    浏览(47)
  • Gitlab自动触发jenkins完成自动化构建 jenkins

     首先安装gitlab插件,我已经安装过了,首次请在 可选插件 中进行搜索。   进入项目配置--构建触发器: Build when a change is pushed to GitLab. GitLab webhook URL: 请复制此处的URL,后续有用。  然后点击高级   “Allowed branches”触发分支可以用默认的全部分支,也可以选择仅由指定名

    2024年02月16日
    浏览(59)
  • Unity碰撞检测/触发器触发问题

    在制作2D平板冒险游戏的攻击模块时,遇到攻击敌人后无法产生触发器事件的问题。 在玩家游戏对象下有一攻击子对象。子对象碰撞器默认处于禁用状态,当按下攻击键时,通过代码: 来对碰撞器进行激活,敌人有刚体,且并非Static状态。两个物体均有碰撞体,但此时并未触

    2024年02月11日
    浏览(47)
  • Jenkins参数化构建与触发

    我们在使用Jenkins进行项目构建时,有时会出现两个项目之间关联的情况,比如项目1构建结束后想要直接执行项目2,或者项目1中的某些参数需要传递给项目2来使用,此时可以使用Jenkins的参数化构建方法来完成该过程。 勾选参数化构建过程 选择你想要添加的参数类型 参数定

    2024年02月05日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包