mirror of
https://github.com/cgrates/cgrates.git
synced 2026-02-11 18:16:24 +05:00
Added DB reload for SchedulerS
This commit is contained in:
committed by
Dan Christian Bogos
parent
7cca7f9420
commit
29dfbc8b90
@@ -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(),
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user