return an error if duration is zero (#701)

This commit is contained in:
墨语
2024-03-26 04:58:47 +08:00
committed by GitHub
parent 41dd412a49
commit 5b1cf9c619
3 changed files with 10 additions and 0 deletions
+1
View File
@@ -9,6 +9,7 @@ var (
ErrDailyJobAtTimesNil = fmt.Errorf("gocron: DailyJob: atTimes must not be nil") ErrDailyJobAtTimesNil = fmt.Errorf("gocron: DailyJob: atTimes must not be nil")
ErrDailyJobHours = fmt.Errorf("gocron: DailyJob: atTimes hours must be between 0 and 23 inclusive") ErrDailyJobHours = fmt.Errorf("gocron: DailyJob: atTimes hours must be between 0 and 23 inclusive")
ErrDailyJobMinutesSeconds = fmt.Errorf("gocron: DailyJob: atTimes minutes and seconds must be between 0 and 59 inclusive") ErrDailyJobMinutesSeconds = fmt.Errorf("gocron: DailyJob: atTimes minutes and seconds must be between 0 and 59 inclusive")
ErrDurationJobIntervalZero = fmt.Errorf("gocron: DurationJob: time interval is 0")
ErrDurationRandomJobMinMax = fmt.Errorf("gocron: DurationRandomJob: minimum duration must be less than maximum duration") ErrDurationRandomJobMinMax = fmt.Errorf("gocron: DurationRandomJob: minimum duration must be less than maximum duration")
ErrEventListenerFuncNil = fmt.Errorf("gocron: eventListenerFunc must not be nil") ErrEventListenerFuncNil = fmt.Errorf("gocron: eventListenerFunc must not be nil")
ErrJobNotFound = fmt.Errorf("gocron: job not found") ErrJobNotFound = fmt.Errorf("gocron: job not found")
+3
View File
@@ -148,6 +148,9 @@ type durationJobDefinition struct {
} }
func (d durationJobDefinition) setup(j *internalJob, _ *time.Location) error { func (d durationJobDefinition) setup(j *internalJob, _ *time.Location) error {
if d.duration == 0 {
return ErrDurationJobIntervalZero
}
j.jobSchedule = &durationJob{duration: d.duration} j.jobSchedule = &durationJob{duration: d.duration}
return nil return nil
} }
+6
View File
@@ -478,6 +478,12 @@ func TestScheduler_NewJobErrors(t *testing.T) {
nil, nil,
ErrCronJobParse, ErrCronJobParse,
}, },
{
"duration job time interval is zero",
DurationJob(0 * time.Second),
nil,
ErrDurationJobIntervalZero,
},
{ {
"random with bad min/max", "random with bad min/max",
DurationRandomJob( DurationRandomJob(