Documentation ¶
Overview ¶
package schedule provides utilities for managing template and workspace autostart and autostop schedules. This includes utilities for parsing and deserializing cron-style expressions.
Index ¶
- type Schedule
- func (s Schedule) Cron() string
- func (s Schedule) DaysOfWeek() string
- func (s Schedule) Humanize() string
- func (s Schedule) Location() *time.Location
- func (s Schedule) Min() time.Duration
- func (s Schedule) Next(t time.Time) time.Time
- func (s Schedule) String() string
- func (s Schedule) Time() string
- func (s Schedule) TimeParsed() time.Time
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Schedule ¶
type Schedule struct {
// contains filtered or unexported fields
}
Schedule represents a cron schedule. It's essentially a wrapper for robfig/cron/v3 that has additional convenience methods.
func Daily ¶
Daily parses a Schedule from spec scoped to a recurring daily event. Spec consists of the following space-delimited fields, in the following order: - timezone e.g. CRON_TZ=US/Central (optional) - minutes of hour e.g. 30 (required) - hour of day e.g. 9 (required) - day of month (must be *) - month (must be *) - day of week (must be *)
Example Usage:
local_sched, _ := cron.Weekly("59 23 * * *") fmt.Println(sched.Next(time.Now().Format(time.RFC3339))) // Output: 2022-04-04T23:59:00Z us_sched, _ := cron.Weekly("CRON_TZ=US/Central 30 9 * * *") fmt.Println(sched.Next(time.Now()).Format(time.RFC3339)) // Output: 2022-04-04T14:30:00Z
func Weekly ¶
Weekly parses a Schedule from spec scoped to a recurring weekly event. Spec consists of the following space-delimited fields, in the following order: - timezone e.g. CRON_TZ=US/Central (optional) - minutes of hour e.g. 30 (required) - hour of day e.g. 9 (required) - day of month (must be *) - month (must be *) - day of week e.g. 1 (required)
Example Usage:
local_sched, _ := cron.Weekly("59 23 *") fmt.Println(sched.Next(time.Now().Format(time.RFC3339))) // Output: 2022-04-04T23:59:00Z us_sched, _ := cron.Weekly("CRON_TZ=US/Central 30 9 1-5") fmt.Println(sched.Next(time.Now()).Format(time.RFC3339)) // Output: 2022-04-04T14:30:00Z
func (Schedule) Cron ¶
Cron returns the cron spec for the schedule with the leading CRON_TZ stripped, if present.
func (Schedule) DaysOfWeek ¶
DaysOfWeek returns a humanized form of the day-of-week field.
func (Schedule) Humanize ¶ added in v2.4.0
Humanize returns a slightly more human-friendly representation of the schedule.
func (Schedule) Min ¶
Min returns the minimum duration of the schedule. This is calculated as follows:
- Let t(0) be a given point in time (1970-01-01T01:01:01Z00:00)
- Let t(max) be 168 hours after t(0).
- Let t(1) be the next scheduled time after t(0).
- Let t(n) be the next scheduled time after t(n-1).
- Then, the minimum duration of s d(min) = min( t(n) - t(n-1) ∀ n ∈ N, t(n) < t(max) )
func (Schedule) String ¶
String serializes the schedule to its original format. The leading CRON_TZ is maintained.
func (Schedule) TimeParsed ¶ added in v2.2.0
TimeParsed returns the parsed time.Time of the minute and hour fields. If the time cannot be represented in a valid time.Time, a zero time is returned.