createSimpleScheduler

fun createSimpleScheduler(incoming: KrontabTemplate): KronScheduler

Parse incoming string and adapt according to next format: "* * * * *" where order of things:

  • seconds

  • minutes

  • hours

  • dayOfMonth

  • month

  • year (optional)

  • offset (optional) (can be placed anywhere after month) (must be marked with o at the end, for example: 60o == +01:00)

  • dayOfWeek (optional) (can be placed anywhere after month)

  • milliseconds (optional) (can be placed anywhere after month) (must be marked with ms at the end, for example: 500ms; 100-200ms)

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

  • Milliseconds ranges can be found in millisecondsRange

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

  • "0/15 30 * * * 500ms" for every 15th seconds in a half of each hour when milliseconds equal to 500

  • "1 2 3 F,4,L 5" for triggering in near first second of second minute of third hour of first, fifth and last days of may

  • "1 2 3 F,4,L 5 60o" for triggering in near first second of second minute of third hour of first, fifth and last days 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 first, fifth and last days 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 first, fifth and last days 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 first, fifth and last days 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 first, fifth and last days of may of 2021st year if it will be in Sunday-Tuesday week days with timezone UTC+01:00

  • "1 2 3 F,4,L 5 2021 60o 0-2w 500ms" for triggering in near first second of second minute of third hour of first, fifth and last days of may of 2021st year if it will be in Sunday-Tuesday week days with timezone UTC+01:00 when milliseconds will be equal to 500

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

See also

dev.inmo.krontab.internal.createKronScheduler

fun createSimpleScheduler(incoming: KrontabTemplate, defaultOffset: Minutes): KronSchedulerTz

Sources

Link copied to clipboard
Link copied to clipboard