// Listens for the HUP system signal and gracefuly reloads the timers from database. func reloadSchedulerSingnalHandler(sched *scheduler.Scheduler, getter engine.RatingStorage) { for { c := make(chan os.Signal) signal.Notify(c, syscall.SIGHUP) sig := <-c utils.Logger.Info(fmt.Sprintf("Caught signal %v, reloading action timings.\n", sig)) sched.Reload(true) } }
// Listens for the HUP system signal and gracefuly reloads the timers from database. func reloadSchedulerSingnalHandler(sched *scheduler.Scheduler, getter engine.RatingStorage) { for { c := make(chan os.Signal) signal.Notify(c, syscall.SIGHUP) sig := <-c utils.Logger.Info(fmt.Sprintf("Caught signal %v, reloading action timings.\n", sig)) sched.LoadActionPlans(getter) // check the tip of the queue for new actions sched.Restart() } }
func (srvMngr *ServiceManager) StopScheduler() error { var sched *scheduler.Scheduler srvMngr.Lock() if srvMngr.sched != nil { sched = srvMngr.sched srvMngr.sched = nil // optimize the lock and release here } srvMngr.Unlock() if sched == nil { return utils.NewCGRError(utils.ServiceManager, utils.CapitalizedMessage(utils.ServiceAlreadyRunning), utils.ServiceAlreadyRunning, "the scheduler is not running") } srvMngr.cfg.SchedulerEnabled = false sched.Shutdown() return nil }