在Jenkins上配置定时任务以每15分钟运行一次

53

我如何在Jenkins上每15分钟运行一次cron作业?

这是我尝试过的:

在Jenkins上,我设置了一个作业,使用以下cron语法每15分钟运行一次:

14 * * * *

但工作每小时执行一次,而不是15分钟。

我收到了有关cron语法格式的警告:

Spread load evenly by using ‘H * * * *’ rather than ‘14 * * * *’

这是否是导致 Cron 作业每小时执行而不是每 15 分钟执行的原因?

3个回答

91

您的语法略有错误。请这样写:

*/15 * * * * command
  |
  |--> `*/15` would imply every 15 minutes.

*表示cron表达式匹配该字段的所有值。

/描述范围增量。


7
这个任务每隔15分钟运行一次是从crontab保存时间开始计算还是像1:00、1:15、1:30、1:45那样每隔15分钟运行一次? - sixty4bit
8
每隔15分钟从整点开始:00、15、30、45,以此类推。 - Miles

79

1) 你的cron表达式有误。如果你想在Jenkins上每15分钟运行一次任务,请使用以下代码:

H/15 * * * *

2) 来自Jenkins的警告消息 使用‘...’而不是‘...’来均匀分配负载,来自JENKINS-17311:

为了允许定期计划任务在系统上产生均匀的负载,应尽可能使用符号 H(代表“哈希”)。例如,使用 0 0 * * * 执行一打每日作业将在午夜时出现大幅峰值。相比之下,使用 H H * * * 仍然每天执行每个作业一次,但不会同时执行,更好地利用有限资源。

示例:

  • H/15 * * * * - 每十五分钟一次(例如在 :07, :22, :37, :52):
  • H(0-29)/10 * * * * - 每小时的前半小时内每十分钟一次(三次,例如在 :04, :14, :24)
  • H 9-16/2 * * 1-5 - 工作日每两小时一次(例如在上午 10:38、中午 12:38、下午 2:38、下午 4:38)
  • H H 1,15 1-11 * - 每月第一天和第15天每天一次,除了12月(例如在上午 12:00 和下午 12:00)

1
使用“H/15 * * * *”将触发以下内联错误:无效输入:“H/15 * * * *”:第1行第2个字符:意外的标记:/ - matthieus
2
不确定上面的评论是否相关,因为H是特定于jenkins的。 - dannypaz
当我在任何cron增量/范围规范中使用正斜杠时,我也会收到“意外的令牌:/”错误,就像OP所需的那样。我尝试过单引号/双引号,用反斜杠转义正斜杠,但都没有解决问题。有什么解决方案吗? - timblaktu
对于那些可能会想知道的人:我们有十几个 Jenkins 控制器,每个都在同一个文件夹中拥有相同的作业。 "H * * * *" 使它们每天在同一时间运行。 - Steven the Easily Amused

10

应该是这样的:

*/15 * * * *  your_command_or_whatever

这对于Cron是准确的,但不适用于Jenkins CRON。您无法指定命令。 - Steven the Easily Amused

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接