Jenkins를 처음 사용합니다. 1 시간마다 예약해야하는 직업이 있습니다.
나는 사용하고있다
* */1 * * *
그러나 효과적으로 작동하지 않습니다.
다른 솔루션을 제공해주세요.
@hourly
또는0 * * * *
Jenkins를 처음 사용합니다. 1 시간마다 예약해야하는 직업이 있습니다.
나는 사용하고있다
* */1 * * *
그러나 효과적으로 작동하지 않습니다.
다른 솔루션을 제공해주세요.
@hourly
또는0 * * * *
답변:
젠킨스는 여기에 설명 된대로 cron 표현을 사용 합니다.
모든 시간을 예약하려면 다음을 입력하십시오.
0 * * * *
그런 다음 매 시간마다 작업이 실행됩니다 (07:00, 08:00, 09:00 등).
최신 정보
원래 구성에 대한 설명, 구문
* */1 * * *
분마다 작업을 실행합니다.
업데이트 2
의견에서 요청한대로 여기에서 3 시간마다 예약하는 구문
0 */3 * * *
구문은 */n
모든 예약 할 수단 작업 n
시간
Jenkins는 다음과 같이 제안합니다.
H * * * *
H
는 하드 코딩 된 값 대신 사용을 선호한다고 분명히 제안 합니다
나는 이것이 오래된 실이라는 것을 알고 있지만 분명히 사람들이 여전히 여기에 도착하기 때문에 대답하고 있습니다.
더 이상 최고 답변을 사용 해서는 안됩니다.
Jenkins는 가치를 도입했습니다 H
.
이 필드는 cron의 구문을 따릅니다 (약간의 차이가 있음). 특히 각 줄은 Tab 또는 공백으로 구분 된 5 개의 필드로 구성됩니다.
DOM MONTH DOW 분
- MINUTE 시간 이내의 분 (0–59)
- HOUR 시간 (0–23)
- DOM이 달의 날짜 (1–31)
- 달이 달 (1-12)
- DOW 0과 7이 일요일 인 요일 (0-7).
한 필드에 여러 값을 지정하기 위해 다음 연산자를 사용할 수 있습니다. 우선 순위에 따라
*
유효한 모든 값을 지정합니다M-N
값의 범위를 지정합니다M-N/X
또는*/X
지정된 범위 또는 전체 유효 범위를 통해 X 간격으로 단계적으로A,B,...,Z
여러 값을 열거주기적으로 예약 된 작업이 시스템에 균일 한로드를 생성 할 수있게하려면 가능한 한 H 기호 ( "해시")를 사용해야합니다. 예를 들어, 매일 12 개의 작업에 0 0 * * *를 사용하면 자정에 큰 스파이크가 발생합니다. 반대로 HH * * *를 사용하면 하루에 한 번 각 작업을 실행하지만 동시에 모든 작업을 수행 할 수는 없으므로 제한된 리소스를 사용하는 것이 좋습니다.
H 기호는 범위와 함께 사용할 수 있습니다. 예를 들어, HH (0-7) * * *는 12:00 AM (자정)에서 7:59 AM 사이의 시간을 의미합니다. 범위와 함께 또는 범위없이 H로 단계 간격을 사용할 수도 있습니다.
H 기호는 범위에서 임의의 값으로 생각할 수 있지만 실제로는 임의의 함수가 아니라 작업 이름의 해시이므로 주어진 프로젝트에 대해 값이 안정적으로 유지됩니다.
달 필드의 경우 가변 월 길이로 인해 * / 3 또는 H / 3와 같은 짧은주기는 대부분의 월말 근처에서 일관되게 작동하지 않습니다. 예를 들어, * / 3는 긴 달의 1 일, 4 일,… 31 일에 실행 된 후 다음 달의 다음 날에 다시 실행됩니다. 해시는 항상 1-28 범위에서 선택되므로 H / 3는 한 달이 끝날 때 3 일에서 6 일 사이에 간격이 생깁니다. (길이가 길면 길이가 일치하지 않지만 그 효과는 상대적으로 눈에 띄지 않을 수 있습니다.)
따라서 한 시간에 한 번 빌드하는 정답은
H * * * *
3 시간마다
H H/3 * * *
의 차이점은 다음 *
과 H
같이 설명 할 수도 있습니다.
*
모든 것으로 번역H
ANY로 번역예를 들어
* * * * *
번역 : 분마다, 매시간, 매월, 매월, 요일이 중요하지 않습니다.
H * * * *
1 시간마다 한 번 빌드 (x), 정확히 몇 분인지 상관하지 않음 (x : 00과 x : 59 사이의 모든 분 가능)
H H * * *
번역 : 하루에 한 번 빌드 , 시간은 중요하지 않음 (00:00 ~ 23:59 사이의 모든 시간 및 시간)
H
하드 코딩 된 시간 값 대신 사용을 선호해야하는 이유 도 이전과 같이 설명됩니다.
100 개의 작업으로 구성된 경우
0 0 * * *
이들은 모두 동시에 시작하여 자정에 많은 폴링과 트래픽을 발생시킵니다.
대신 모두가 구성된 경우
H H * * *
그것들은 모두 하루에 한 번 지어 지지만 동시에는 아니지만 하루 종일 배포됩니다.
시간 범위를 사용하여 일정을보다 잘 계획 할 수 있습니다. 예 :
H H(18-23) * * *
모든 작업은 매일 18 : 00 ~ 23 : 59 사이에 구축됩니다.
자정을 가로 지르는 작업 (예 : 오후 9시에서 오전 5시 사이)을 예약 할 수도 있습니다.
그러나 cron은 일반적으로 이것을 허용하지 않으므로 shiftet 시간대를 사용하여 트릭을 사용할 수 있습니다.
예를 들어 GMT + 1 인 시간대 MEZ에 살고 있으며 오후 9시에서 오전 5시 사이에 모든 작업을 만들고 싶습니다. 이를 위해 전체 시간대를 5 시간 씩
TZ=Etc/GMT+6
14:00 (-> +5 = 19:00 pm)부터 23:59 (-> +5 = 4:59 am)에 시작하는 시간에 Shiftet 범위를 사용하는 것보다
H H(14-23) * * *
* */1 * * *
매시간 실행됩니다
모든 작업이 동시에 svn에 폴링되지 않도록 H 함수를 사용하십시오.
H H/1 * * *
그것은 마술을해야합니다. 작업을 완료하는 데 시간이 더 걸리거나 빌드 트리거 기능을 수행중인 경우 이전 빌드가 완료 될 때까지 시간을 늘리거나 jenkins pluggin을 사용하여 빌드를 중지하십시오.
https://wiki.jenkins-ci.org/display/JENKINS/Build+Blocker+Plugin
* * * * *
. 매분 실행하는 => 와 같습니다 . 특정 범위 사이에서 실행하려면 * 1-2 * * *
<- 처럼 오전 1시에서 1시 59 분 사이에 실행됩니다
* * 1-2 * *
인가요?
* 1-2 * * *
. 첫 번째 위치는 Minute of our
, 두 번째는 hour of day
, 세 번째 day of month
, 네 번째 month of year
및 다섯 번째입니다 day of week
(특별한 경우에는 여섯 번째를 허용합니다 year
). 그래서 당신의 라인 * * 1-2 * *
은 "매 순간, 매시간, 매월 첫째, 둘째 날과 요일을 번역 합니다 .
*
번역하는 every
동안 H
번역됩니다 any
. 따라서 * * * * *
매분을 H * * * *
의미하지만 매 시간마다 한 번 빌드 하는 것을 의미 하지만 정확한 분은 신경 쓰지 않으며 (범위로 정의되지 않은 경우 0-59 사이에있을 수 있음) H H * * *
하루에 한 번 빌드하지만 몇시에 신경 쓰지 않습니다.