Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Cron expression for a time range

I am using Quartz.Net to schedule my jobs in my application. I was just wondering if a CRON expression for the following scenario can be built:

Every second between 2:15AM and 5:20AM

like image 743
Ram Avatar asked Dec 22 '22 01:12

Ram


2 Answers

robyaw,

Thanks a lot for your answer. And I apologize for such a delay in replying. I had actually been off for a while. Your solution indeed works. I had to create 3 CRON triggers for the time range that I had specified. You were right with the time ranges that you had mentioned. However, for the 3 CRON expressions that you had mentioned. I am afraid they might not work as intended. These expressions work for the time range : 2:15AM - 5:20AM - Everyday

1) * 15-59 2 * * ? - Every second from 2:15AM to 3:00AM, ie, 2:15:00AM to 2:59:59AM

2) * 0-59 3-4 * * ? - Every second from 3:00AM to 5:00AM, ie, 3:00:00AM to 4:59:59AM

3) * 0-19 5 * * ? - Every second from 5:00AM to 5:20AM, ie, 5:00:00AM to 5:19:59AM

@gauteh : Please note that Quartz .Net actually supports secondly trigger.

Hope this helps others who might need a solution to a similar problem.

like image 133
Ram Avatar answered Jan 05 '23 16:01

Ram


Regarding cron seconds support, there appears to be some difference in the syntax used between the UNIX cron tool and CRON Expression. According to the Quartz CRON Documentation however, seconds is supported.

Given the above, I would create three CRON Triggers to handle:

  1. 2:15:00 - 2:59:59
  2. 3:00:00 - 4:59:59
  3. 5:00:00 - 5:19:59

Which would translate to (I believe):

  1. * 15/1 2 * * ?
  2. * * 3-5 * * ?
  3. * 0-20 5 * * ?
like image 27
robyaw Avatar answered Jan 05 '23 17:01

robyaw