jenkins에서 1 시간마다 작업을 예약해야합니다.


16

Jenkins를 처음 사용합니다. 1 시간마다 예약해야하는 직업이 있습니다.

나는 사용하고있다

* */1 * * * 

그러나 효과적으로 작동하지 않습니다.

다른 솔루션을 제공해주세요.


3
"하지만 효과적으로 작동하지 않는"내용을 설명해야합니다. 방법. 그리고 배포판과 cronttab 항목에 추가
Sathyajith Bhat

사용 @hourly또는0 * * * *
렌주 CHANDRAN chingath에게

감사. 3 시간마다 예약하려면 구문을 언급하십시오.
Ajay

사용 : H / 60 * * * *
Eyal Sooliman

답변:


31

젠킨스는 여기에 설명 된대로 cron 표현을 사용 합니다.

모든 시간을 예약하려면 다음을 입력하십시오.

0 * * * *

그런 다음 매 시간마다 작업이 실행됩니다 (07:00, 08:00, 09:00 등).

최신 정보

원래 구성에 대한 설명, 구문

* */1 * * *

분마다 작업을 실행합니다.

업데이트 2

의견에서 요청한대로 여기에서 3 시간마다 예약하는 구문

0 */3 * * *

구문은 */n모든 예약 할 수단 작업 n시간


답변 주셔서 감사합니다. 잘 작동합니다. 그러나 내 직업은 실행하는 데 1 시간 이상이 걸립니다. 예를 들어 3 시간 마다이 작업을 예약하려면 구문이 무엇입니까. 공유하십시오.
Ajay

업데이트 된 답변 확인 :)
masegaloeh

당신의 문제에 대한이 응답 작업, 생각하십시오 @Ajay 이 답변을 받아 :)
masegaloeh

14

Jenkins는 다음과 같이 제안합니다.

H * * * *

2
1 세 이상의 질문에 대한 다른 답변과 동일한 답변입니다.
JakeGould

이것은 다른 답변을 복제하고 새로운 내용을 추가하지 않습니다. 실제로 새로운 내용이 없다면 답변을 올리지 마십시오.
DavidPostill

4
이 접근 방식의 장점은 jenkins가 대기열에서 작업을 관리한다는 것입니다. 다른 사람이 이미 답변을 받았지만 여전히 유용합니다. 유용한 경우 왜 그렇게 가혹합니까? 좋아요 20
개로

@juanIsaza와 함께 가야합니다. 이것은 복제본이 아니지만 실제로 더 나은 대답입니다. Jenkins H는 하드 코딩 된 값 대신 사용을 선호한다고 분명히 제안 합니다
derHugo

9

나는 이것이 오래된 실이라는 것을 알고 있지만 분명히 사람들이 여전히 여기에 도착하기 때문에 대답하고 있습니다.

더 이상 최고 답변을 사용 해서는 안됩니다.

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같이 설명 할 수도 있습니다.

  • *모든 것으로 번역
  • HANY로 번역

예를 들어

* * * * *

번역 : 분마다, 매시간, 매월, 매월, 요일이 중요하지 않습니다.

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
* */1 * * *

매시간 실행됩니다

모든 작업이 동시에 svn에 폴링되지 않도록 H 함수를 사용하십시오.

H H/1 * * *

그것은 마술을해야합니다. 작업을 완료하는 데 시간이 더 걸리거나 빌드 트리거 기능을 수행중인 경우 이전 빌드가 완료 될 때까지 시간을 늘리거나 jenkins pluggin을 사용하여 빌드를 중지하십시오.

https://wiki.jenkins-ci.org/display/JENKINS/Build+Blocker+Plugin


첫 번째는 오전 1시에서 오전 2시 사이에 1 분마다 실행됩니다.
Eric Wang

@EricWang : 아니요 * * * * *. 매분 실행하는 => 와 같습니다 . 특정 범위 사이에서 실행하려면 * 1-2 * * *<- 처럼 오전 1시에서 1시 59 분 사이에 실행됩니다
derHugo

@derHugo 무슨 뜻 * * 1-2 * *인가요?
Eric Wang

1
@EricWang 아니요 * 1-2 * * *. 첫 번째 위치는 Minute of our, 두 번째는 hour of day, 세 번째 day of month, 네 번째 month of year및 다섯 번째입니다 day of week(특별한 경우에는 여섯 번째를 허용합니다 year). 그래서 당신의 라인 * * 1-2 * *은 "매 순간, 매시간, 매월 첫째, 둘째 날과 요일을 번역 합니다 .
derHugo

1
이 답변의 저자가 놓친 차이점은로 *번역하는 every동안 H번역됩니다 any. 따라서 * * * * *매분을 H * * * *의미하지만 매 시간마다 한 번 빌드 하는 것을 의미 하지만 정확한 분은 신경 쓰지 않으며 (범위로 정의되지 않은 경우 0-59 사이에있을 수 있음) H H * * *하루에 한 번 빌드하지만 몇시에 신경 쓰지 않습니다.
derHugo

-5

구문은 다음과 같습니다.


MINUTE  Minutes within the hour (0-59)
HOUR    The hour of the day (0-23)
DOM     The day of the month (1-31)
MONTH   The month (1-12)
DOW     The day of the week (0-7) where 0 and 7 are Sunday.

3 시간마다 예약하려면 구문이 다음과 같아야합니다.

* 3 * * * *

4
이 3 매일 오전에 대해 일정, 그리고 모든 3시간합니다
lony
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.