parseInterval parses interval-based schedules like "every 10 minutes" or "every 2h"
()
| 91 | |
| 92 | // parseInterval parses interval-based schedules like "every 10 minutes" or "every 2h" |
| 93 | func (p *ScheduleParser) parseInterval() (string, error) { |
| 94 | if len(p.tokens) < 2 { |
| 95 | return "", errors.New("invalid interval format, expected 'every N unit' or 'every Nunit'") |
| 96 | } |
| 97 | scheduleLog.Printf("Parsing interval schedule: tokens=%v", p.tokens) |
| 98 | |
| 99 | hasWeekdaysSuffix := p.hasWeekdaysSuffix() |
| 100 | |
| 101 | if cronExpr, handled, err := p.parseShortDurationInterval(hasWeekdaysSuffix); handled || err != nil { |
| 102 | return cronExpr, err |
| 103 | } |
| 104 | |
| 105 | if cronExpr, handled, err := p.parseEveryDayIntervalAlias(hasWeekdaysSuffix); handled || err != nil { |
| 106 | return cronExpr, err |
| 107 | } |
| 108 | |
| 109 | return p.parseLongInterval(hasWeekdaysSuffix) |
| 110 | } |
| 111 | |
| 112 | // parseBase parses base schedules like "daily", "weekly on monday", etc. |
| 113 | func (p *ScheduleParser) parseBase() (string, error) { |
no test coverage detected