diff --git a/modular/modular.go b/modular/modular.go index e700368..66614d4 100644 --- a/modular/modular.go +++ b/modular/modular.go @@ -3,7 +3,6 @@ package modular import ( "fmt" "github.com/kercylan98/minotaur/utils/log" - "reflect" "sync" ) @@ -27,14 +26,12 @@ func (m *modular) RegisterServices(s ...Service) { func Run() { m := application var names = make(map[string]bool) - var tvm = make(map[reflect.Type]reflect.Value) for i := 0; i < len(m.registerServices); i++ { s := newService(m.registerServices[i]) if names[s.name] { panic(fmt.Errorf("service %s is already registered", s.name)) } names[s.name] = true - tvm[s.vof.Type()] = s.vof m.services = append(m.services, s) } diff --git a/utils/timer/options.go b/utils/timer/options.go index 133b4b7..ea8fb60 100644 --- a/utils/timer/options.go +++ b/utils/timer/options.go @@ -2,10 +2,10 @@ package timer type Option func(ticker *Ticker) -// WithCaller 通过其他的 handle 执行 Caller +// WithCaller 通过其他的 handler 执行 Caller func WithCaller(handle func(name string, caller func())) Option { return func(ticker *Ticker) { - ticker.handle = handle + ticker.handler = handle } } diff --git a/utils/timer/ticker.go b/utils/timer/ticker.go index 337419c..ebae57e 100644 --- a/utils/timer/ticker.go +++ b/utils/timer/ticker.go @@ -16,8 +16,8 @@ type Ticker struct { timers map[string]*Scheduler lock sync.RWMutex - handle func(name string, caller func()) - mark string + handler func(name string, caller func()) + mark string } // Mark 获取定时器的标记 @@ -33,6 +33,7 @@ func (slf *Ticker) Release() { slf.lock.Lock() slf.mark = "" + slf.handler = nil for name, scheduler := range slf.timers { scheduler.close() delete(slf.timers, name) @@ -94,8 +95,8 @@ func (slf *Ticker) CronByInstantly(name, expression string, handleFunc interface f := reflect.ValueOf(handleFunc) slf.lock.RLock() defer slf.lock.RUnlock() - if slf.handle != nil { - slf.handle(name, func() { + if slf.handler != nil { + slf.handler(name, func() { f.Call(values) }) } else { @@ -147,9 +148,9 @@ func (slf *Ticker) loop(name string, after, interval time.Duration, expr *cronex slf.lock.Lock() slf.timers[name] = scheduler - if slf.handle != nil { + if slf.handler != nil { scheduler.timer = slf.wheel.ScheduleFunc(scheduler, func() { - slf.handle(scheduler.Name(), scheduler.Caller) + slf.handler(scheduler.Name(), scheduler.Caller) }) } else { scheduler.timer = slf.wheel.ScheduleFunc(scheduler, scheduler.Caller)