Могу ли я периодически устанавливать Jenkins 'Build на сборку каждый второй вторник, начиная с 13 марта?

Я хочу запланировать выполнение Дженкинсом определенного задания в 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 году.

Есть ли способ сделать это более кратко или не зависящий от года?


person JeffH    schedule 01.03.2012    source источник


Ответы (4)


Это то, что возникает довольно часто, см., Например, этот документ, эта ветка форума или этот вопрос о переполнении стека.

Ответ в основном отрицательный. Что я бы сделал в вашей ситуации, так это запускать задание каждый вторник и на первом этапе сборки проверять, действительно ли запускать, например проверка того, существует ли файл и выполняется только в том случае, если его нет. Если он существует, он будет удален, чтобы задание можно было запустить при следующей проверке. Вы, конечно, также должны проверить, вторник ли сейчас.

person Lars Kotthoff    schedule 01.03.2012

Если вы отказываетесь от каждого второго вторника и можете довольствоваться первым и третьим вторниками в месяц, следующее должно работать: 0 9 1-7 * 2 0 9 15-21 * 2

Вы бегаете каждый день с 1 до 7, но только во вторник и каждый день с 15 до 21, опять же только во вторник. Вторник будет происходить только один раз в каждом из этих интервалов.

Да, это не строго раз в две недели, так как месяц с 5 вторниками нарушит вашу частоту кадров, но здесь у вас есть предсказуемый график работы, который не нужно корректировать в Jenkins с течением времени.

person kwied    schedule 03.08.2016

У меня есть знакомые: crontab.guru

10 22 1-7,14-21,28-31 * 6
person Jeff Anderson    schedule 07.11.2017

Я использую Excel для создания выражений cron. Следующие формулы генерируются каждый второй понедельник в 8:00, начиная с 22 октября.

      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 выражениями.

person Prof Mo    schedule 15.10.2012