diff --git a/cmd/cgr-engine/cgr-engine.go b/cmd/cgr-engine/cgr-engine.go index 7096b6309..65e5f3130 100644 --- a/cmd/cgr-engine/cgr-engine.go +++ b/cmd/cgr-engine/cgr-engine.go @@ -531,7 +531,7 @@ func main() { supS := services.NewSupplierService(cfg, dmService, cacheS, filterSChan, server, attrS.GetIntenternalChan(), stS.GetIntenternalChan(), reS.GetIntenternalChan(), dspS.GetIntenternalChan()) - schS := services.NewSchedulerService(cfg, dmService.GetDM(), cacheS, server, internalCDRServerChan, dspS.GetIntenternalChan()) + schS := services.NewSchedulerService(cfg, dmService, cacheS, server, internalCDRServerChan, dspS.GetIntenternalChan()) rals := services.NewRalService(cfg, dmService.GetDM(), cdrDb, loadDb, cacheS, filterSChan, server, tS.GetIntenternalChan(), stS.GetIntenternalChan(), internalCacheSChan, schS.GetIntenternalChan(), attrS.GetIntenternalChan(), dspS.GetIntenternalChan(), diff --git a/config/config.go b/config/config.go index 644366fed..5fe889917 100755 --- a/config/config.go +++ b/config/config.go @@ -1542,6 +1542,7 @@ func (cfg *CGRConfig) reloadSection(section string) (err error) { } fallthrough case SCHEDULER_JSN: + cfg.rldChans[DATADB_JSN] <- struct{}{} // reload datadb before cfg.rldChans[SCHEDULER_JSN] <- struct{}{} if !fall { break diff --git a/services/schedulers.go b/services/schedulers.go index cbafc1ef0..43312debf 100644 --- a/services/schedulers.go +++ b/services/schedulers.go @@ -31,7 +31,7 @@ import ( ) // NewSchedulerService returns the Scheduler Service -func NewSchedulerService(cfg *config.CGRConfig, dm *engine.DataManager, +func NewSchedulerService(cfg *config.CGRConfig, dm *DataDBService, cacheS *engine.CacheS, server *utils.Server, internalCDRServerChan, dispatcherChan chan rpcclient.RpcClientConnection) *SchedulerService { return &SchedulerService{ @@ -49,7 +49,7 @@ func NewSchedulerService(cfg *config.CGRConfig, dm *engine.DataManager, type SchedulerService struct { sync.RWMutex cfg *config.CGRConfig - dm *engine.DataManager + dm *DataDBService cacheS *engine.CacheS server *utils.Server cdrSChan chan rpcclient.RpcClientConnection @@ -72,7 +72,7 @@ func (schS *SchedulerService) Start() (err error) { defer schS.Unlock() utils.Logger.Info(" Starting CGRateS Scheduler.") - schS.schS = scheduler.NewScheduler(schS.dm) + schS.schS = scheduler.NewScheduler(schS.dm.GetDM()) go schS.schS.Loop() schS.rpc = v1.NewSchedulerSv1(schS.cfg) diff --git a/services/schedulers_it_test.go b/services/schedulers_it_test.go index 406174234..4a059c67e 100644 --- a/services/schedulers_it_test.go +++ b/services/schedulers_it_test.go @@ -44,25 +44,21 @@ func TestSchedulerSReload(t *testing.T) { filterSChan <- nil close(chS.GetPrecacheChannel(utils.CacheActionPlans)) server := utils.NewServer() - dm, err := engine.ConfigureDataStorage(cfg.DataDbCfg().DataDbType, - cfg.DataDbCfg().DataDbHost, cfg.DataDbCfg().DataDbPort, - cfg.DataDbCfg().DataDbName, cfg.DataDbCfg().DataDbUser, - cfg.DataDbCfg().DataDbPass, cfg.GeneralCfg().DBDataEncoding, - cfg.CacheCfg(), cfg.DataDbCfg().DataDbSentinelName) - if err != nil { - t.Fatal(err) - } srvMngr := servmanager.NewServiceManager(cfg, engineShutdown) internalCdrSChan := make(chan rpcclient.RpcClientConnection, 1) internalCdrSChan <- nil - schS := NewSchedulerService(cfg, dm, chS, server, internalCdrSChan, nil) - srvMngr.AddServices(schS, NewLoaderService(cfg, nil, filterSChan, server, nil, nil, engineShutdown)) + db := NewDataDBService(cfg) + schS := NewSchedulerService(cfg, db, chS, server, internalCdrSChan, nil) + srvMngr.AddServices(schS, NewLoaderService(cfg, nil, filterSChan, server, nil, nil, engineShutdown), db) if err = srvMngr.StartServices(); err != nil { t.Error(err) } if schS.IsRunning() { t.Errorf("Expected service to be down") } + if db.IsRunning() { + t.Errorf("Expected service to be down") + } var reply string if err := cfg.V1ReloadConfig(&config.ConfigReloadWithArgDispatcher{ Path: path.Join("/usr", "share", "cgrates", "conf", "samples", "tutmongonew"), @@ -76,6 +72,9 @@ func TestSchedulerSReload(t *testing.T) { if !schS.IsRunning() { t.Errorf("Expected service to be running") } + if !db.IsRunning() { + t.Errorf("Expected service to be running") + } cfg.SchedulerCfg().Enabled = false cfg.GetReloadChan(config.SCHEDULER_JSN) <- struct{}{} time.Sleep(10 * time.Millisecond)