diff --git a/go.mod b/go.mod index 9d544da..ab5ead5 100644 --- a/go.mod +++ b/go.mod @@ -8,6 +8,7 @@ require ( github.com/robfig/cron/v3 v3.0.1 github.com/stretchr/testify v1.10.0 go.uber.org/goleak v1.3.0 + golang.org/x/crypto v0.40.0 ) require ( diff --git a/go.sum b/go.sum index 79a2e4d..bd70891 100644 --- a/go.sum +++ b/go.sum @@ -19,6 +19,8 @@ github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOf github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= +golang.org/x/crypto v0.40.0 h1:r4x+VvoG5Fm+eJcxMaY8CQM7Lb0l1lsmjGBQ6s8BfKM= +golang.org/x/crypto v0.40.0/go.mod h1:Qr1vMER5WyS2dfPHAlsOj01wgLbsyWtFn/aY+5+ZdxY= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= diff --git a/scheduler.go b/scheduler.go index 1cbc98d..b395e63 100644 --- a/scheduler.go +++ b/scheduler.go @@ -736,16 +736,19 @@ func (s *scheduler) addOrUpdateJob(id uuid.UUID, definition JobDefinition, taskW } if err := s.verifyParameterType(taskFunc, tsk); err != nil { + j.cancel() return nil, err } if err := definition.setup(&j, s.location, s.exec.clock.Now()); err != nil { + j.cancel() return nil, err } newJobCtx, newJobCancel := context.WithCancel(context.Background()) select { case <-s.shutdownCtx.Done(): + newJobCancel() case s.newJobCh <- newJobIn{ ctx: newJobCtx, cancel: newJobCancel, @@ -756,6 +759,7 @@ func (s *scheduler) addOrUpdateJob(id uuid.UUID, definition JobDefinition, taskW select { case <-newJobCtx.Done(): case <-s.shutdownCtx.Done(): + newJobCancel() } out := s.jobFromInternalJob(j)