问题
How do I schedule a Jenkins build such that it would be able to build only at specific hours every day?
For example to start at 4 PM
0 16 1-7 * *
I understand that as: 0 minutes, at 4 o'clock PM from Monday to Sunday every month, however it builds every minute :(
I would be grateful for any advice. Thanks!
回答1:
Please read the other answers and comments, there’s a lot more information stated and nuances described (hash functions?) that I did not know when I answered this question.
According to Jenkins' own help (the "?" button) for the schedule task, 5 fields are specified:
This field follows the syntax of cron (with minor differences). Specifically, each line consists of 5 fields separated by TAB or whitespace: MINUTE HOUR DOM MONTH DOW
I just tried to get a job to launch at 4:42PM (my approximate local time) and it worked with the following, though it took about 30 extra seconds:
42 16 * * *
If you want multiple times, I think the following should work:
0 16,18,20,22 * * *
for 4, 6, 8, and 10 o'clock PM every day.
回答2:
In the job configuration one can define various build triggers. With periodically build you can schedule the build by defining the date or day of the week and the time to execute the build.
The format is as follows:
MINUTE (0-59), HOUR (0-23), DAY (1-31), MONTH (1-12), DAY OF THE WEEK (0-6)
The letter H, representing the word Hash can be inserted instead of any of the values, it will calculate the parameter based on the hash code of your project name, this is so that if you are building several projects on your build machine at the same time, lets say midnight each day, they do not all start there build execution at the same time, each project starts its execution at a different minute depending on its hash code. You can also specify the value to be between numbers, i.e. H(0,30) will return the hash code of the project where the possible hashes are 0-30
Examples:
start build daily at 08:30 in the morning, Monday - Friday:
- 30 08 * * 1-5
weekday daily build twice a day, at lunchtime 12:00 and midnight 00:00, Sunday to Thursday:
- 00 0,12 * * 0-4
start build daily in the late afternoon between 4:00 p.m. - 4:59 p.m. or 16:00 -16:59 depending on the projects hash:
- H 16 * * 1-5
start build at midnight:
- @midnight
or start build at midnight, every Saturday:
- 59 23 * * 6
every first of every month between 2:00 a.m. - 02:30 a.m. :
- H(0-30) 02 01 * *
more on CRON expressions
回答3:
This example is everyday, once around 9am and once around 5pm. (edited per comments).
H 9,17 * * *
回答4:
To build once a day between say 4PM to 6PM you can use
H H(15-17) * * *
回答5:
That appears to be a cron expression. Note that your example builds only on the first to seventh of every month, at 16:00. You likely have some sort of other error, or Jenkins uses non-standard CRON expressions.
回答6:
In Jenkins , we have the format is as:
Minute(0-59) Hour(0-23) Day(1-7) Month(1-12) Day of the Week
回答7:
H H(5-21)/2 * * 1-5
MON-FRI build every 2 hour between
回答8:
Jenkins uses Cron Expressions.
You can simply schedule hourly builds by just typing@hourly
.
回答9:
Try this for 4 PM from Monday to Sunday
0 16 * * *
You can check the description messgage displayed while you configuring in "Build periodically' under Jenkins. (Refer the screenshot given below)
"Would last have run at Sunday, November 17, 2019 4:00:05 PM IST; would next run at Monday, November 18, 2019 4:00:05 PM IST."
Screenshot
The seconds in the time " Monday, November 18, 2019 4:00:05 PM IST" refers to our current system seconds.
来源:https://stackoverflow.com/questions/7000251/how-schedule-build-in-jenkins