create Simple Scheduler
Parse incoming string and adapt according to next format: "* * * * *" where order of things:
seconds
minutes
hours
dayOfMonth
month
(optional) year
(optional) (can be placed anywhere after month) (must be marked with
o
at the end, for example: 60o == +01:00) offset(optional) (can be placed anywhere after month) dayOfWeek
And each one (except of offsets) have next format:
{number}[,{number},...]
or *
and {number} here is one of
{int}-{int}
{int}/{int}
*/{int}
{int}
F
L
Week days must be marked with w
at the end, and starts with 0 which means Sunday. For example, 0w == Sunday. With weeks you can use syntax like with any number like seconds, for example: 0-2w means Sunday-Tuesday
Additional info about ranges can be found in follow accordance:
Seconds ranges can be found in secondsRange
Minutes ranges can be found in minutesRange
Hours ranges can be found in hoursRange
Days of month ranges can be found in dayOfMonthRange
Months ranges can be found in monthRange
Years ranges can be found in yearRange (in fact - any Int)
WeekDay (timezone) ranges can be found in dayOfWeekRange
Examples:
"0/5 * * * *" for every five seconds triggering
"0/5,L * * * *" for every five seconds triggering and on 59 second
"0/15 30 * * *" for every 15th seconds in a half of each hour
"1 2 3 F,4,L 5" for triggering in near first second of second minute of third hour of fourth day of may
"1 2 3 F,4,L 5 60o" for triggering in near first second of second minute of third hour of fourth day of may with timezone UTC+01:00
"1 2 3 F,4,L 5 60o 0-2w" for triggering in near first second of second minute of third hour of fourth day of may in case if it will be in Sunday-Tuesday week days with timezone UTC+01:00
"1 2 3 F,4,L 5 2021" for triggering in near first second of second minute of third hour of fourth day of may of 2021st year
"1 2 3 F,4,L 5 2021 60o" for triggering in near first second of second minute of third hour of fourth day of may of 2021st year with timezone UTC+01:00
"1 2 3 F,4,L 5 2021 60o 0-2w" for triggering in near first second of second minute of third hour of fourth day of may of 2021st year if it will be in Sunday-Tuesday week days with timezone UTC+01:00
Return
In case when offset parameter is absent in incoming will be used createSimpleScheduler method and returned CronDateTimeScheduler. In case when offset parameter there is in incoming will be used createKronSchedulerWithOffset and returned CronDateTimeSchedulerTz