7

我想安排詹金斯在每周一、周三周四和周五早上 8:00 以及每隔一个周二早上 8:00 运行某个工作。

目前,我能想到的最好的是:

# 8am every Monday, Wednesday, Thursday, and Friday:
0 8 * * 1,3-5

# 8am on specific desired Tuesdays, one line per month:
0 8 13,27 3 2
0 8 10,24 4 2
0 8 8,22 5 2
0 8 5,19 6 2
0 8 3,17,31 7 2
0 8 14,28 8 2
0 8 11,25 9 2
0 8 9,23 10 2
0 8 6,20 11 2
0 8 4,18 12 2

对于 2012 年的剩余时间来说,这很好(如果丑陋的话),但它几乎肯定不会在 2013 年达到我想要的效果。

有没有更简洁的方法来做到这一点,或者是一年独立的?

4

4 回答 4

3

这是经常出现的问题,请参阅此文档此论坛主题此 stackoverflow 问题

答案基本上是否定的。在您的情况下,我会做的是每周二运行该作业,并通过例如检查文件是否存在以及仅在不存在时才运行来检查是否实际运行的第一个构建步骤。如果存在,则会将其删除,以便下次检查时可以运行该作业。当然,您还必须检查是否是星期二。

于 2012-03-01T21:42:45.163 回答
2

我得到了你的家人:crontab.guru

10 22 1-7,14-21,28-31 * 6
于 2017-11-07T15:50:08.157 回答
1

如果您放弃每隔一个星期二,并且可以对每月的第一个和第三个星期二感到满意,那么以下应该可行:0 9 1-7 * 2 0 9 15-21 * 2

你每天从 1 点到 7 点跑步,但在星期二,每天从 15 点到 21 点,同样在星期二。在每个这些间隔中,星期二只会出现一次。

是的,严格来说不是每隔一周,因为 5-星期二一个月会打乱你的节奏,但在这里你有一个可预测的工作时间表,不需要随着时间的推移在 Jenkins 中进行调整。

于 2016-08-03T13:09:24.757 回答
0

我使用 Excel 生成 cron 表达式。从 10 月 22 日开始,每隔一个星期一早上 8:00 生成以下公式。

      A      B              C               D
1    41204  =MONTH(A1)  =DAY(A1)        =CONCATENATE("0 8 ", C1, " ", B1, " 1")
2    =A1+14 =MONTH(A2)  =DAY(A2)    =CONCATENATE("0 8 ", C2, " ", B2, " 1")

这会产生

    A       B       C       D 
1   22-Oct  10  22  0 8 22 10 1
2   5-Nov   11  5   0 8 5 11 1

只需自动填写第 2 行即可获得额外的天数。我不确定你可以给詹金斯多少单独的表达。我知道它适用于 26 个表达式。

于 2012-10-15T19:02:55.373 回答