我如何在詹金斯安排工作?

San*_*and 256 cron jenkins

我在詹金斯增加了一份新工作,我想定期安排.

配置作业,我正在检查"定期构建"复选框,并在" 计划"文本字段中添加了表达式:

15 13***

但它不会在预定时间运行.

安排工作是正确的程序吗?

在此输入图像描述

该作业应该在凌晨4:20运行,但它没有运行.

Céd*_*ien 453

通过设置计划周期,15 13 * * *您可以告诉Jenkins在每天的第13个小时的第15分钟每个月的每个月安排构建.

Jenkins使用了cron表达式,不同的字段是:

  1. MINUTES一小时内的分钟数(0-59)
  2. 一小时的小时数(0-23)
  3. DAYMONTH一个月中的一天(1-31)
  4. 每月一个月(1-12)
  5. DAYWEEK星期几(0-7),其中0和7是星期日

如果您想每5分钟安排一次构建,这将完成以下工作: */5 * * * *

如果你想在8点每天安排你的构建,这将完成工作: 0 8 * * *

对于过去的几个版本(2014),Jenkins有一个新参数,H(摘自Jenkins代码文档):

为了允许定期调度的任务在系统上产生均匀负载,H应尽可能使用符号("哈希").

例如,使用0 0 * * *十几个日常工作将导致午夜大幅飙升.相比之下,使用H H * * *仍然会每天执行一次,但不能同时执行,更好地使用有限的资源.

还要注意:

H符号可以被认为是在一定范围内的随机值,但它实际上是作业名称,而不是随机函数的哈希值,所以该值仍然是任何项目稳定.

更多使用'H'的例子

  • 使用'H/5****'而不是'*/5****'均匀分散负载 (20认同)
  • 令人沮丧的是,在我的大脑中似乎有些东西根本无法掌握这些表达而不必经常回访文档. (12认同)
  • 使用像http://crontab.guru/这样的网站来检查你的cron表达式 (10认同)
  • @SkillM2 不要忘记阿尔伯特·爱因斯坦的话——“永远不要记住你可以查到的东西。” (6认同)
  • 那么如何在每6小时后定期建立.`**/6***`会起作用吗? (5认同)
  • 感谢您对 H 与哈希相关的解释。不过,我仍然认为这是 Jenkins 作者的一个不幸的命名选择。在这种情况下,他们可以猜测每个人都会直观地将 H 与小时联系起来,并选择其他东西。 (3认同)
  • @ziggy 这意味着该作业将在每月星期五的 23:01 运行。不同之处在于,一个月有 28 到 31 天,而一周只有 7 天,其中 1 是星期一,7 是星期日。请注意,0 也是星期日。 (2认同)

小智 32

Jenkins允许您多次设置,以换行符分隔.

如果您需要每天早上7点建造,每周日下午4点,以下工作情况良好.

H 7 * * *

H 16 * * 0
Run Code Online (Sandbox Code Playgroud)

  • @ArunSangal而不是`H(0-0)`,您可以简单地使用`0`。使用`H`的优点是,并非所有Job都会尝试同时准确地运行,而是尝试获取“下一个可用时间” -slot” (2认同)

小智 27

*/5 * * * * 意味着每5分钟一次

5 * * * * 是指每小时的第5分钟


Gav*_*hen 23

在 Jenkins 中调度作业的步骤:

  1. 点击职位需求的“配置”
  2. 向下滚动到“构建触发器” - 副标题
  3. 定期点击Build的复选框
  4. 在 Schedule 字段中添加时间表,例如: @midnight

在此处输入图片说明

注意:在计划字段下,可以看到上次和下一次运行的日期时间。

Jenkins 还支持预定义的别名来安排构建:

@hourly, @daily, @weekly, @monthly,@midnight

@hourly --> 每小时开始时构建 --> 0 * * * *

@daily, @midnight --> 每天午夜构建 --> 0 0 * * *

@weekly --> 每周在周日早上的午夜构建 --> 0 0 * * 0

@monthly --> 每月在第一天的午夜构建 --> 0 0 1 * *


小智 21

格式如下:

分钟(0-59),小时(0-23),白天(1-31),月(1-12),星期(0-6)

可以插入代表单词Hash的字母H 而不是任何值.它将根据项目名称的哈希码计算参数.

这样,如果您同时在构建计算机上构建多个项目,那么让我们说每天午夜,它们并非都在同一时间开始构建执行.每个项目根据其哈希码在不同的时间开始执行.

您还可以指定数字之间的值,即H(0,30)将返回可能的哈希值为0-30的项目的哈希码.

例子:

  1. 每天早上08:30开始建设,周一至周五:30 08**1-5

  2. 平日每日建立两次,午餐时间12:00和午夜00:00,周日至周四:00 0,12**0-4

  3. 每天下午4:00 pm至4:59或16:00 -16:59之间每天开始构建,具体取决于项目哈希:H 16**1-5

  4. 午夜开始构建:@midnight或每周六午夜开始构建:59 23**6

  5. 每个月的第一个月的凌晨2:00 - 02:30:H(0,30)02 01**


小智 14

Jenkins 作业调度语法\n首先,让\xe2\x80\x99s 看一下 Jenkins 作业调度配置。它看起来很像 Linux\xe2\x80\x99s 的 cron 语法,但你不必熟悉 Linux 命令行才能理解它。

\n

调度条目由五个空格分隔的字段组成。您可以通过添加多个条目来多次安排一项作业。

\n

截屏 詹金斯日程表\n每个字段可以包含精确值或使用一组特殊表达式:

\n

熟悉的星号 * 表示所有有效值。因此,每天运行的作业在第三个字段中有一个 *。

\n

破折号分隔值的范围。例如,从上午 9:00 到下午 5:00 每小时运行的作业的第二个字段中将包含 9-17。

\n

间隔用斜杠/指定。每 15 分钟运行一次的作业的第一个字段中包含 H/15。请注意,第一个字段中的 H 有特殊含义。如果您希望作业每 15 分钟运行一次,您可以将其配置为 0/15,这将使其在每小时开始时运行。但是,如果您以这种方式配置太多作业,则可能会使 Jenkins 控制器过载。最终,H 告诉 Jenkins 根据作业名称的哈希值选择一分钟。

\n

最后,您可以使用逗号指定多个值。因此,周一、周三和周五运行的作业的第五个字段将包含 1,3,5。

\n

Jenkins 在其帮助部分提供了一些用于调度的示例。

\n
\n

每十五分钟(可能在 :07、:22、:37、:52):

\n
H/15 * * * *\n
Run Code Online (Sandbox Code Playgroud)\n

每小时前半段每隔十分钟(三次,\n可能在 :04, :14, :24):

\n
H(0-29)/10 * * * *\n
Run Code Online (Sandbox Code Playgroud)\n

每个工作日从上午 9:45 开始到下午 3:45 结束,每两小时一次:

\n
45 9-16/2 * * 1-5\n
Run Code Online (Sandbox Code Playgroud)\n

每个工作日上午 8 点到下午 4 点之间每两小时一次\n(可能是上午 9:38、上午 11:38、下午 1:38、下午 3:38):

\n
H H(8-15)/2 * * 1-5\n
Run Code Online (Sandbox Code Playgroud)\n

除 12 月外,每月 1 日和 15 日每天一次:

\n
H H 1,15 1-11 *\n
Run Code Online (Sandbox Code Playgroud)\n
\n

Jenkins 还有一组别名,可以更轻松地使用公共间隔。

\n

表格截图詹金斯 别名

\n


Jay*_*ham 9

尝试这个。

20 4 * * *

检查下面的屏幕截图

在此输入图像描述

引用 URL - https://www.lenar.io/jenkins-schedule-build-periodically/


fdu*_*uff 7

要每5分钟安排一次cron作业,您需要像这样定义cron设置:

*/5 * * * *
Run Code Online (Sandbox Code Playgroud)