Added DB reload for SchedulerS

This commit is contained in:
Trial97
2019-10-08 13:45:33 +03:00
committed by Dan Christian Bogos
parent 7cca7f9420
commit 29dfbc8b90
4 changed files with 14 additions and 14 deletions

View File

@@ -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(),

View File

@@ -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

View File

@@ -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("<ServiceManager> 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)

View File

@@ -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)