mirror of
https://github.com/cgrates/cgrates.git
synced 2026-02-17 14:19:54 +05:00
Updated cgr-engine service
This commit is contained in:
committed by
Dan Christian Bogos
parent
cea082eb7f
commit
766f5e303a
@@ -323,101 +323,6 @@ func main() {
|
||||
return
|
||||
}
|
||||
|
||||
// init the concurrentRequests
|
||||
cncReqsLimit := cfg.CoreSCfg().Caps
|
||||
if utils.ConcurrentReqsLimit != 0 { // used as shared variable
|
||||
cncReqsLimit = utils.ConcurrentReqsLimit
|
||||
}
|
||||
cncReqsStrategy := cfg.CoreSCfg().CapsStrategy
|
||||
if len(utils.ConcurrentReqsStrategy) != 0 {
|
||||
cncReqsStrategy = utils.ConcurrentReqsStrategy
|
||||
}
|
||||
caps := engine.NewCaps(cncReqsLimit, cncReqsStrategy)
|
||||
|
||||
// init the channel here because we need to pass them to connManager
|
||||
internalServeManagerChan := make(chan birpc.ClientConnector, 1)
|
||||
internalConfigChan := make(chan birpc.ClientConnector, 1)
|
||||
internalCoreSv1Chan := make(chan birpc.ClientConnector, 1)
|
||||
internalCacheSChan := make(chan birpc.ClientConnector, 1)
|
||||
internalGuardianSChan := make(chan birpc.ClientConnector, 1)
|
||||
internalAnalyzerSChan := make(chan birpc.ClientConnector, 1)
|
||||
internalCDRServerChan := make(chan birpc.ClientConnector, 1)
|
||||
internalAttributeSChan := make(chan birpc.ClientConnector, 1)
|
||||
internalDispatcherSChan := make(chan birpc.ClientConnector, 1)
|
||||
internalSessionSChan := make(chan birpc.ClientConnector, 1)
|
||||
internalChargerSChan := make(chan birpc.ClientConnector, 1)
|
||||
internalThresholdSChan := make(chan birpc.ClientConnector, 1)
|
||||
internalStatSChan := make(chan birpc.ClientConnector, 1)
|
||||
internalResourceSChan := make(chan birpc.ClientConnector, 1)
|
||||
internalRouteSChan := make(chan birpc.ClientConnector, 1)
|
||||
internalAdminSChan := make(chan birpc.ClientConnector, 1)
|
||||
internalLoaderSChan := make(chan birpc.ClientConnector, 1)
|
||||
internalEEsChan := make(chan birpc.ClientConnector, 1)
|
||||
internalRateSChan := make(chan birpc.ClientConnector, 1)
|
||||
internalActionSChan := make(chan birpc.ClientConnector, 1)
|
||||
internalAccountSChan := make(chan birpc.ClientConnector, 1)
|
||||
|
||||
// initialize the connManager before creating the DMService
|
||||
// because we need to pass the connection to it
|
||||
connManager := engine.NewConnManager(cfg, map[string]chan birpc.ClientConnector{
|
||||
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaAnalyzer): internalAnalyzerSChan,
|
||||
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaAdminS): internalAdminSChan,
|
||||
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaAttributes): internalAttributeSChan,
|
||||
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaCaches): internalCacheSChan,
|
||||
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaCDRs): internalCDRServerChan,
|
||||
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaChargers): internalChargerSChan,
|
||||
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaGuardian): internalGuardianSChan,
|
||||
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaLoaders): internalLoaderSChan,
|
||||
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaResources): internalResourceSChan,
|
||||
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaSessionS): internalSessionSChan,
|
||||
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaStats): internalStatSChan,
|
||||
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaRoutes): internalRouteSChan,
|
||||
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaThresholds): internalThresholdSChan,
|
||||
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaServiceManager): internalServeManagerChan,
|
||||
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaConfig): internalConfigChan,
|
||||
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaCore): internalCoreSv1Chan,
|
||||
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaEEs): internalEEsChan,
|
||||
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaRateS): internalRateSChan,
|
||||
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaDispatchers): internalDispatcherSChan,
|
||||
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaAccounts): internalAccountSChan,
|
||||
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaActions): internalActionSChan,
|
||||
|
||||
utils.ConcatenatedKey(rpcclient.BiRPCInternal, utils.MetaSessionS): internalSessionSChan,
|
||||
})
|
||||
srvDep := map[string]*sync.WaitGroup{
|
||||
utils.AnalyzerS: new(sync.WaitGroup),
|
||||
utils.AdminS: new(sync.WaitGroup),
|
||||
utils.AsteriskAgent: new(sync.WaitGroup),
|
||||
utils.AttributeS: new(sync.WaitGroup),
|
||||
utils.CDRServer: new(sync.WaitGroup),
|
||||
utils.ChargerS: new(sync.WaitGroup),
|
||||
utils.CoreS: new(sync.WaitGroup),
|
||||
utils.DataDB: new(sync.WaitGroup),
|
||||
utils.DiameterAgent: new(sync.WaitGroup),
|
||||
utils.RegistrarC: new(sync.WaitGroup),
|
||||
utils.DispatcherS: new(sync.WaitGroup),
|
||||
utils.DNSAgent: new(sync.WaitGroup),
|
||||
utils.EEs: new(sync.WaitGroup),
|
||||
utils.ERs: new(sync.WaitGroup),
|
||||
utils.FreeSWITCHAgent: new(sync.WaitGroup),
|
||||
utils.GlobalVarS: new(sync.WaitGroup),
|
||||
utils.HTTPAgent: new(sync.WaitGroup),
|
||||
utils.KamailioAgent: new(sync.WaitGroup),
|
||||
utils.LoaderS: new(sync.WaitGroup),
|
||||
utils.RadiusAgent: new(sync.WaitGroup),
|
||||
utils.RateS: new(sync.WaitGroup),
|
||||
utils.ResourceS: new(sync.WaitGroup),
|
||||
utils.RouteS: new(sync.WaitGroup),
|
||||
utils.SchedulerS: new(sync.WaitGroup),
|
||||
utils.SessionS: new(sync.WaitGroup),
|
||||
utils.SIPAgent: new(sync.WaitGroup),
|
||||
utils.StatS: new(sync.WaitGroup),
|
||||
utils.StorDB: new(sync.WaitGroup),
|
||||
utils.ThresholdS: new(sync.WaitGroup),
|
||||
utils.ActionS: new(sync.WaitGroup),
|
||||
utils.AccountS: new(sync.WaitGroup),
|
||||
}
|
||||
|
||||
srvManager.StartServices()
|
||||
// Start FilterS
|
||||
go startFilterService(filterSChan, cacheS, connManager,
|
||||
|
||||
@@ -48,7 +48,8 @@ type CGREngine struct {
|
||||
cM *engine.ConnManager
|
||||
server *cores.Server
|
||||
|
||||
cS *cores.CoreService
|
||||
cS *cores.CoreService
|
||||
iFilterSCh chan *engine.FilterS
|
||||
}
|
||||
|
||||
func (cgr *CGREngine) AddService(service servmanager.Service, connName, apiPrefix string,
|
||||
@@ -89,8 +90,8 @@ func (cgr *CGREngine) InitConfigFromPath(path, nodeID string, lgLevel int) (err
|
||||
return
|
||||
}
|
||||
|
||||
func (cgr *CGREngine) InitServices(ctx *context.Context, shtDwn context.CancelFunc, pprofPath string, cpuPrfFl io.Closer, memPrfDir string, memPrfStop chan struct{}) (err error) {
|
||||
iFilterSCh := make(chan *engine.FilterS, 1)
|
||||
func (cgr *CGREngine) InitServices(ctx *context.Context, shtDw context.CancelFunc, httpPrfPath string, cpuPrfFl io.Closer, memPrfDir string, memPrfStop chan struct{}) (err error) {
|
||||
cgr.iFilterSCh = make(chan *engine.FilterS, 1)
|
||||
// init the channel here because we need to pass them to connManager
|
||||
iServeManagerCh := make(chan birpc.ClientConnector, 1)
|
||||
iConfigCh := make(chan birpc.ClientConnector, 1)
|
||||
@@ -213,12 +214,12 @@ func (cgr *CGREngine) InitServices(ctx *context.Context, shtDwn context.CancelFu
|
||||
if cgr.cfg.ConfigSCfg().Enabled {
|
||||
cgr.server.RegisterHTTPFunc(cgr.cfg.ConfigSCfg().URL, config.HandlerConfigS)
|
||||
}
|
||||
if pprofPath != utils.EmptyString {
|
||||
cgr.server.RegisterProfiler(pprofPath)
|
||||
if httpPrfPath != utils.EmptyString {
|
||||
cgr.server.RegisterProfiler(httpPrfPath)
|
||||
}
|
||||
|
||||
// init AnalyzerS
|
||||
anz := NewAnalyzerService(cgr.cfg, cgr.server, iFilterSCh, iAnalyzerSCh, cgr.srvDep, shtDwn)
|
||||
anz := NewAnalyzerService(cgr.cfg, cgr.server, cgr.iFilterSCh, iAnalyzerSCh, cgr.srvDep, shtDw)
|
||||
if anz.ShouldRun() {
|
||||
cgr.shdWg.Add(1)
|
||||
if err = anz.Start(); err != nil {
|
||||
@@ -227,7 +228,7 @@ func (cgr *CGREngine) InitServices(ctx *context.Context, shtDwn context.CancelFu
|
||||
}
|
||||
|
||||
// init CoreSv1
|
||||
coreS := NewCoreService(cgr.cfg, caps, cgr.server, iCoreSv1Ch, anz, cpuPrfFl, memPrfDir, memPrfStop, &cgr.shdWg, cgr.srvDep, shtDwn)
|
||||
coreS := NewCoreService(cgr.cfg, caps, cgr.server, iCoreSv1Ch, anz, cpuPrfFl, memPrfDir, memPrfStop, &cgr.shdWg, cgr.srvDep, shtDw)
|
||||
cgr.shdWg.Add(1)
|
||||
if err = coreS.Start(); err != nil {
|
||||
return
|
||||
@@ -235,7 +236,7 @@ func (cgr *CGREngine) InitServices(ctx *context.Context, shtDwn context.CancelFu
|
||||
cgr.cS = coreS.GetCoreS()
|
||||
|
||||
// init CacheS
|
||||
cacheS := cgrInitCacheS(ctx, shtDwn, iCacheSCh, cgr.server, cgr.cfg, dmService.GetDM(), anz, coreS.GetCoreS().CapsStats)
|
||||
cacheS := cgrInitCacheS(ctx, shtDw, iCacheSCh, cgr.server, cgr.cfg, dmService.GetDM(), anz, coreS.GetCoreS().CapsStats)
|
||||
engine.Cache = cacheS
|
||||
|
||||
// init GuardianSv1
|
||||
@@ -243,50 +244,58 @@ func (cgr *CGREngine) InitServices(ctx *context.Context, shtDwn context.CancelFu
|
||||
|
||||
// Start ServiceManager
|
||||
cgr.srvManager = servmanager.NewServiceManager(cgr.cfg, &cgr.shdWg, cgr.cM)
|
||||
dspS := NewDispatcherService(cgr.cfg, dmService, cacheS, iFilterSCh, cgr.server, iDispatcherSCh, cgr.cM, anz, cgr.srvDep)
|
||||
attrS := NewAttributeService(cgr.cfg, dmService, cacheS, iFilterSCh, cgr.server, iAttributeSCh, anz, dspS, cgr.srvDep)
|
||||
dspS := NewDispatcherService(cgr.cfg, dmService, cacheS, cgr.iFilterSCh, cgr.server, iDispatcherSCh, cgr.cM, anz, cgr.srvDep)
|
||||
attrS := NewAttributeService(cgr.cfg, dmService, cacheS, cgr.iFilterSCh, cgr.server, iAttributeSCh, anz, dspS, cgr.srvDep)
|
||||
dspH := NewRegistrarCService(cgr.cfg, cgr.server, cgr.cM, anz, cgr.srvDep)
|
||||
chrS := NewChargerService(cgr.cfg, dmService, cacheS, iFilterSCh, cgr.server,
|
||||
chrS := NewChargerService(cgr.cfg, dmService, cacheS, cgr.iFilterSCh, cgr.server,
|
||||
iChargerSCh, cgr.cM, anz, cgr.srvDep)
|
||||
tS := NewThresholdService(cgr.cfg, dmService, cacheS, iFilterSCh,
|
||||
tS := NewThresholdService(cgr.cfg, dmService, cacheS, cgr.iFilterSCh,
|
||||
cgr.cM, cgr.server, iThresholdSCh, anz, cgr.srvDep)
|
||||
stS := NewStatService(cgr.cfg, dmService, cacheS, iFilterSCh, cgr.server,
|
||||
stS := NewStatService(cgr.cfg, dmService, cacheS, cgr.iFilterSCh, cgr.server,
|
||||
iStatSCh, cgr.cM, anz, cgr.srvDep)
|
||||
reS := NewResourceService(cgr.cfg, dmService, cacheS, iFilterSCh, cgr.server,
|
||||
reS := NewResourceService(cgr.cfg, dmService, cacheS, cgr.iFilterSCh, cgr.server,
|
||||
iResourceSCh, cgr.cM, anz, cgr.srvDep)
|
||||
routeS := NewRouteService(cgr.cfg, dmService, cacheS, iFilterSCh, cgr.server,
|
||||
routeS := NewRouteService(cgr.cfg, dmService, cacheS, cgr.iFilterSCh, cgr.server,
|
||||
iRouteSCh, cgr.cM, anz, cgr.srvDep)
|
||||
|
||||
admS := NewAdminSv1Service(cgr.cfg, dmService, storDBService, iFilterSCh, cgr.server,
|
||||
admS := NewAdminSv1Service(cgr.cfg, dmService, storDBService, cgr.iFilterSCh, cgr.server,
|
||||
iAdminSCh, cgr.cM, anz, cgr.srvDep)
|
||||
|
||||
cdrS := NewCDRServer(cgr.cfg, dmService, storDBService, iFilterSCh, cgr.server, iCDRServerCh,
|
||||
cdrS := NewCDRServer(cgr.cfg, dmService, storDBService, cgr.iFilterSCh, cgr.server, iCDRServerCh,
|
||||
cgr.cM, anz, cgr.srvDep)
|
||||
|
||||
smg := NewSessionService(cgr.cfg, dmService, cgr.server, iSessionSCh, cgr.cM, anz, cgr.srvDep, shtDwn)
|
||||
smg := NewSessionService(cgr.cfg, dmService, cgr.server, iSessionSCh, cgr.cM, anz, cgr.srvDep, shtDw)
|
||||
|
||||
ldrs := NewLoaderService(cgr.cfg, dmService, iFilterSCh, cgr.server,
|
||||
ldrs := NewLoaderService(cgr.cfg, dmService, cgr.iFilterSCh, cgr.server,
|
||||
iLoaderSCh, cgr.cM, anz, cgr.srvDep)
|
||||
|
||||
cgr.srvManager.AddServices(gvService, attrS, chrS, tS, stS, reS, routeS,
|
||||
admS, cdrS, smg, coreS,
|
||||
NewEventReaderService(cgr.cfg, iFilterSCh, cgr.cM, cgr.srvDep, shtDwn),
|
||||
NewDNSAgent(cgr.cfg, iFilterSCh, cgr.cM, cgr.srvDep, shtDwn),
|
||||
NewFreeswitchAgent(cgr.cfg, cgr.cM, cgr.srvDep, shtDwn),
|
||||
NewKamailioAgent(cgr.cfg, cgr.cM, cgr.srvDep, shtDwn),
|
||||
NewAsteriskAgent(cgr.cfg, cgr.cM, cgr.srvDep, shtDwn), // partial reload
|
||||
NewRadiusAgent(cgr.cfg, iFilterSCh, cgr.cM, cgr.srvDep, shtDwn), // partial reload
|
||||
NewDiameterAgent(cgr.cfg, iFilterSCh, cgr.cM, cgr.srvDep, shtDwn), // partial reload
|
||||
NewHTTPAgent(cgr.cfg, iFilterSCh, cgr.server, cgr.cM, cgr.srvDep), // no reload
|
||||
NewEventReaderService(cgr.cfg, cgr.iFilterSCh, cgr.cM, cgr.srvDep, shtDw),
|
||||
NewDNSAgent(cgr.cfg, cgr.iFilterSCh, cgr.cM, cgr.srvDep, shtDw),
|
||||
NewFreeswitchAgent(cgr.cfg, cgr.cM, cgr.srvDep, shtDw),
|
||||
NewKamailioAgent(cgr.cfg, cgr.cM, cgr.srvDep, shtDw),
|
||||
NewAsteriskAgent(cgr.cfg, cgr.cM, cgr.srvDep, shtDw), // partial reload
|
||||
NewRadiusAgent(cgr.cfg, cgr.iFilterSCh, cgr.cM, cgr.srvDep, shtDw), // partial reload
|
||||
NewDiameterAgent(cgr.cfg, cgr.iFilterSCh, cgr.cM, cgr.srvDep, shtDw), // partial reload
|
||||
NewHTTPAgent(cgr.cfg, cgr.iFilterSCh, cgr.server, cgr.cM, cgr.srvDep), // no reload
|
||||
ldrs, anz, dspS, dspH, dmService, storDBService,
|
||||
NewEventExporterService(cgr.cfg, iFilterSCh,
|
||||
NewEventExporterService(cgr.cfg, cgr.iFilterSCh,
|
||||
cgr.cM, cgr.server, iEEsCh, anz, cgr.srvDep),
|
||||
NewRateService(cgr.cfg, cacheS, iFilterSCh, dmService,
|
||||
NewRateService(cgr.cfg, cacheS, cgr.iFilterSCh, dmService,
|
||||
cgr.server, iRateSCh, anz, cgr.srvDep),
|
||||
NewSIPAgent(cgr.cfg, iFilterSCh, cgr.cM, cgr.srvDep, shtDwn),
|
||||
NewActionService(cgr.cfg, dmService, cacheS, iFilterSCh, cgr.cM, cgr.server, iActionSCh, anz, cgr.srvDep),
|
||||
NewAccountService(cgr.cfg, dmService, cacheS, iFilterSCh, cgr.cM, cgr.server, iAccountSCh, anz, cgr.srvDep),
|
||||
NewSIPAgent(cgr.cfg, cgr.iFilterSCh, cgr.cM, cgr.srvDep, shtDw),
|
||||
NewActionService(cgr.cfg, dmService, cacheS, cgr.iFilterSCh, cgr.cM, cgr.server, iActionSCh, anz, cgr.srvDep),
|
||||
NewAccountService(cgr.cfg, dmService, cacheS, cgr.iFilterSCh, cgr.cM, cgr.server, iAccountSCh, anz, cgr.srvDep),
|
||||
)
|
||||
cgr.srvManager.StartServices(ctx, shtDw)
|
||||
// Start FilterS
|
||||
go cgrStartFilterService(ctx, cgr.iFilterSCh, cacheS, cgr.cM,
|
||||
cgr.cfg, dmService.GetDM())
|
||||
|
||||
cgrInitServiceManagerV1(iServeManagerCh, cgr.srvManager, cgr.server, anz)
|
||||
|
||||
cgrInitConfigSv1(iConfigCh, cgr.cfg, cgr.server, anz)
|
||||
return
|
||||
}
|
||||
|
||||
@@ -309,28 +318,28 @@ func (cgr *CGREngine) Start(ctx *context.Context, shtDw context.CancelFunc, flag
|
||||
cgr.shdWg.Add(1)
|
||||
go cgrSingnalHandler(ctx, shtDw, cgr.cfg, &cgr.shdWg)
|
||||
|
||||
var stopMemProf chan struct{}
|
||||
var memPrfStop chan struct{}
|
||||
if *flags.MemPrfDir != utils.EmptyString {
|
||||
cgr.shdWg.Add(1)
|
||||
stopMemProf = make(chan struct{})
|
||||
go cores.MemProfiling(*flags.MemPrfDir, *flags.MemPrfInterval, *flags.MemPrfNoF, &cgr.shdWg, stopMemProf, shtDw)
|
||||
memPrfStop = make(chan struct{})
|
||||
go cores.MemProfiling(*flags.MemPrfDir, *flags.MemPrfInterval, *flags.MemPrfNoF, &cgr.shdWg, memPrfStop, shtDw)
|
||||
defer func() { //here
|
||||
if cgr.cS == nil {
|
||||
close(stopMemProf)
|
||||
close(memPrfStop)
|
||||
}
|
||||
}()
|
||||
}
|
||||
|
||||
var cpuProfileFile io.Closer
|
||||
var cpuPrfF io.Closer
|
||||
if *flags.CpuPrfDir != utils.EmptyString {
|
||||
cpuProfileFile, err = cores.StartCPUProfiling(path.Join(*flags.CpuPrfDir, utils.CpuPathCgr))
|
||||
if err != nil {
|
||||
if cpuPrfF, err = cores.StartCPUProfiling(
|
||||
path.Join(*flags.CpuPrfDir, utils.CpuPathCgr)); err != nil {
|
||||
return
|
||||
}
|
||||
defer func() { //here
|
||||
if cgr.cS == nil {
|
||||
pprof.StopCPUProfile()
|
||||
cpuProfileFile.Close()
|
||||
cpuPrfF.Close()
|
||||
}
|
||||
}()
|
||||
}
|
||||
@@ -371,5 +380,22 @@ func (cgr *CGREngine) Start(ctx *context.Context, shtDw context.CancelFunc, flag
|
||||
utils.Logger.Info(fmt.Sprintf("<CoreS> starting version <%s><%s>", vers, goVers))
|
||||
cgr.cfg.LazySanityCheck()
|
||||
|
||||
if err = cgr.InitServices(ctx, shtDw, *flags.HttpPrfPath, cpuPrfF, *flags.MemPrfDir, memPrfStop); err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
if *preload != utils.EmptyString {
|
||||
runPreload(ldrs, internalLoaderSChan, shdChan)
|
||||
}
|
||||
|
||||
// Serve rpc connections
|
||||
// go startRPC(server, internalAdminSChan, internalCDRServerChan,
|
||||
// internalResourceSChan, internalStatSChan,
|
||||
// internalAttributeSChan, internalChargerSChan, internalThresholdSChan,
|
||||
// internalRouteSChan, internalSessionSChan, internalAnalyzerSChan,
|
||||
// internalDispatcherSChan, internalLoaderSChan,
|
||||
// internalCacheSChan, internalEEsChan, internalRateSChan, internalActionSChan,
|
||||
// internalAccountSChan, shdChan)
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
@@ -47,7 +47,7 @@ func NewCGREngineFlags() *CGREngineFlags {
|
||||
CfgPath: fs.String(utils.CfgPathCgr, utils.ConfigPath, "Configuration directory path."),
|
||||
Version: fs.Bool(utils.VersionCgr, false, "Prints the application version."),
|
||||
PidFile: fs.String(utils.PidCgr, utils.EmptyString, "Write pid file"),
|
||||
HttPrfPath: fs.String(utils.HttpPrfPthCgr, utils.EmptyString, "http address used for program profiling"),
|
||||
HttpPrfPath: fs.String(utils.HttpPrfPthCgr, utils.EmptyString, "http address used for program profiling"),
|
||||
CpuPrfDir: fs.String(utils.CpuProfDirCgr, utils.EmptyString, "write cpu profile to files"),
|
||||
MemPrfDir: fs.String(utils.MemProfDirCgr, utils.EmptyString, "write memory profile to file"),
|
||||
MemPrfInterval: fs.Duration(utils.MemProfIntervalCgr, 5*time.Second, "Time between memory profile saves"),
|
||||
@@ -68,7 +68,7 @@ type CGREngineFlags struct {
|
||||
CfgPath *string
|
||||
Version *bool
|
||||
PidFile *string
|
||||
HttPrfPath *string
|
||||
HttpPrfPath *string
|
||||
CpuPrfDir *string
|
||||
MemPrfDir *string
|
||||
MemPrfInterval *time.Duration
|
||||
@@ -184,11 +184,7 @@ func cgrInitCacheS(ctx *context.Context, shutdown context.CancelFunc,
|
||||
if !cfg.DispatcherSCfg().Enabled {
|
||||
server.RpcRegister(chSv1)
|
||||
}
|
||||
var rpc birpc.ClientConnector = chSv1
|
||||
if anz.IsRunning() {
|
||||
rpc = anz.GetAnalyzerS().NewAnalyzerConnector(rpc, utils.MetaInternal, utils.EmptyString, utils.CacheS)
|
||||
}
|
||||
iCacheSCh <- rpc
|
||||
iCacheSCh <- anz.GetInternalCodec(chSv1, utils.CacheS)
|
||||
return
|
||||
}
|
||||
|
||||
|
||||
@@ -56,7 +56,7 @@ func (srvMngr *ServiceManager) GetConfig() *config.CGRConfig {
|
||||
}
|
||||
|
||||
// StartServices starts all enabled services
|
||||
func (srvMngr *ServiceManager) StartServices(ctx *context.Context, shtDwn context.CancelFunc) (err error) {
|
||||
func (srvMngr *ServiceManager) StartServices(ctx *context.Context, shtDwn context.CancelFunc) {
|
||||
go srvMngr.handleReload(ctx, shtDwn)
|
||||
for _, service := range srvMngr.subsystems {
|
||||
if service.ShouldRun() && !service.IsRunning() {
|
||||
@@ -71,7 +71,6 @@ func (srvMngr *ServiceManager) StartServices(ctx *context.Context, shtDwn contex
|
||||
}
|
||||
}
|
||||
// startServer()
|
||||
return
|
||||
}
|
||||
|
||||
// AddServices adds given services
|
||||
|
||||
Reference in New Issue
Block a user