Search code examples
jenkinscron

How do I schedule jobs in Jenkins?


I added a new job in Jenkins, which I want to schedule periodically.

From Configure job, I am checking the "Build Periodically" checkbox and in the Schedule text field added the expression:

15 13 * * *

But it does not run at the scheduled time.

Is it the correct procedure to schedule a job?

Enter image description here

The job should run at 4:20 AM, but it is not running.


Solution

  • By setting the schedule period to 15 13 * * * you tell Jenkins to schedule the build every day of every month of every year at the 15th minute of the 13th hour of the day.

    Jenkins used a cron expression (official documentation), and the different fields are:

    1. MINUTES Minutes in one hour (0-59)
    2. HOURS Hours in one day (0-23)
    3. DAYMONTH Day in a month (1-31)
    4. MONTH Month in a year (1-12)
    5. DAYWEEK Day of the week (0-7) where 0 and 7 are sunday

    If you want to schedule your build every 5 minutes, this will do the job : */5 * * * *

    If you want to schedule your build every day at 8h00, this will do the job : 0 8 * * *

    For the past few versions (2014), Jenkins have a new parameter, H (extract from the Jenkins code documentation):

    To allow periodically scheduled tasks to produce even load on the system, the symbol H (for “hash”) should be used wherever possible.

    For example, using 0 0 * * * for a dozen daily jobs will cause a large spike at midnight. In contrast, using H H * * * would still execute each job once a day, but not all at the same time, better using limited resources.

    Note also that:

    The H symbol can be thought of as a random value over a range, but it actually is a hash of the job name, not a random function, so that the value remains stable for any given project.

    More example of using 'H'