Class: ScheduleSpec
ScheduleSpec is a complete description of a set of absolute timestamps (possibly infinite) that an action should occur at. The meaning of a ScheduleSpec depends only on its contents and never changes, except that the definition of a time zone can change over time (most commonly, when daylight saving time policy changes for an area). To create a totally self-contained ScheduleSpec, use UTC or include timezone_data.
For input, you can provide zero or more of: structured_calendar, calendar, cron_string, interval, and exclude_structured_calendar, and all of them will be used (the schedule will take action at the union of all of their times, minus the ones that match exclude_structured_calendar).
On input, calendar and cron_string fields will be compiled into structured_calendar (and maybe interval and timezone_name), so if you Describe a schedule, you'll see only structured_calendar, interval, etc.
If a spec has no matching times after the current time, then the schedule will be subject to automatic deletion (after several days).
Implements
Constructors
constructor
• new ScheduleSpec(properties?): ScheduleSpec
Constructs a new ScheduleSpec.
Parameters
| Name | Type | Description |
|---|---|---|
properties? | IScheduleSpec | Properties to set |
Returns
Properties
calendar
• calendar: ICalendarSpec[]
Calendar-based specifications of times.
Implementation of
cronString
• cronString: string[]
cron_string holds a traditional cron specification as a string. It
accepts 5, 6, or 7 fields, separated by spaces, and interprets them the
same way as CalendarSpec.
5 fields: minute, hour, day_of_month, month, day_of_week
6 fields: minute, hour, day_of_month, month, day_of_week, year
7 fields: second, minute, hour, day_of_month, month, day_of_week, year
If year is not given, it defaults to *. If second is not given, it
defaults to 0.
Shorthands @yearly, @monthly, @weekly, @daily, and @hourly are also
accepted instead of the 5-7 time fields.
Optionally, the string can be preceded by CRON_TZ=<timezone name> or
TZ=<timezone name>, which will get copied to timezone_name. (There must
not also be a timezone_name present.)
Optionally "#" followed by a comment can appear at the end of the string.
Note that the special case that some cron implementations have for
treating day_of_month and day_of_week as "or" instead of "and" when both
are set is not implemented.
@every <interval>[/<phase>] is accepted and gets compiled into an
IntervalSpec instead. <interval> and <phase> should be a decimal integer
with a unit suffix s, m, h, or d.
Implementation of
endTime
• Optional endTime: null | ITimestamp
If end_time is set, any timestamps after end_time will be skipped.