46
votes

How can I run a cron job every 15 mins on Jenkins?

This is what I've tried :

On Jenkins I have a job set to run every 15 mins using this cron syntax :

14 * * * *

But the job executes every hour instead of 15 mins.

I'm receiving a warning about the format of the cron syntax :

Spread load evenly by using ‘H * * * *’ rather than ‘14 * * * *’

Could this be the reason why the cron job executes every hour instead of 15 mins ?

3

3 Answers

86
votes

Your syntax is slightly wrong. Say:

*/15 * * * * command
  |
  |--> `*/15` would imply every 15 minutes.

* indicates that the cron expression matches for all values of the field.

/ describes increments of ranges.

74
votes

1) Your cron is wrong. If you want to run job every 15 mins on Jenkins use this:

H/15 * * * *

2) Warning from Jenkins Spread load evenly by using ‘...’ rather than ‘...’ came with JENKINS-17311:

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.

Examples:

  • H/15 * * * * - every fifteen minutes (perhaps at :07, :22, :37, :52):
  • H(0-29)/10 * * * * - every ten minutes in the first half of every hour (three times, perhaps at :04, :14, :24)
  • H 9-16/2 * * 1-5 - once every two hours every weekday (perhaps at 10:38 AM, 12:38 PM, 2:38 PM, 4:38 PM)
  • H H 1,15 1-11 * - once a day on the 1st and 15th of every month except December
11
votes

It should be,

*/15 * * * *  your_command_or_whatever