本文整理汇总了Golang中github.com/cgrates/cgrates/scheduler.NewScheduler函数的典型用法代码示例。如果您正苦于以下问题:Golang NewScheduler函数的具体用法?Golang NewScheduler怎么用?Golang NewScheduler使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了NewScheduler函数的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: StartScheduler
func (srvMngr *ServiceManager) StartScheduler(waitCache bool) error {
srvMngr.RLock()
schedRunning := srvMngr.sched != nil
srvMngr.RUnlock()
if schedRunning {
return utils.NewCGRError(utils.ServiceManager,
utils.CapitalizedMessage(utils.ServiceAlreadyRunning),
utils.ServiceAlreadyRunning,
"the scheduler is already running")
}
if waitCache { // Wait for cache to load data before starting
cacheDone := <-srvMngr.cacheDoneChan
srvMngr.cacheDoneChan <- cacheDone
}
utils.Logger.Info("<ServiceManager> Starting CGRateS Scheduler.")
sched := scheduler.NewScheduler(srvMngr.ratingDB)
srvMngr.Lock()
srvMngr.sched = sched
srvMngr.Unlock()
go func() {
sched.Loop()
srvMngr.Lock()
srvMngr.sched = nil // if we are after loop, the service is down
srvMngr.Unlock()
if srvMngr.cfg.SchedulerEnabled {
srvMngr.engineShutdown <- true // shutdown engine since this service should be running
}
}()
return nil
}
开发者ID:cgrates,项目名称:cgrates,代码行数:30,代码来源:servmanager.go
示例2: startScheduler
func startScheduler(internalSchedulerChan chan *scheduler.Scheduler, ratingDb engine.RatingStorage, exitChan chan bool) {
utils.Logger.Info("Starting CGRateS Scheduler.")
sched := scheduler.NewScheduler()
go reloadSchedulerSingnalHandler(sched, ratingDb)
time.Sleep(1)
internalSchedulerChan <- sched
sched.LoadActionPlans(ratingDb)
sched.Loop()
exitChan <- true // Should not get out of loop though
}
开发者ID:henrylee2cn,项目名称:cgrates,代码行数:10,代码来源:cgr-engine.go
示例3: TestExecuteActions3
func TestExecuteActions3(t *testing.T) {
scheduler.NewScheduler(ratingDb3).Reload()
time.Sleep(10 * time.Millisecond) // Give time to scheduler to topup the account
if acnt, err := acntDb3.GetAccount("cgrates.org:12346"); err != nil {
t.Error(err)
} else if len(acnt.BalanceMap) != 1 {
t.Error("Account does not have enough balances: ", acnt.BalanceMap)
} else if acnt.BalanceMap[utils.VOICE][0].Value != 40 {
t.Error("Account does not have enough minutes in balance", acnt.BalanceMap[utils.VOICE][0].Value)
}
}
开发者ID:cgrates,项目名称:cgrates,代码行数:11,代码来源:ddazmbl3_test.go
示例4: TestExecuteActions3
func TestExecuteActions3(t *testing.T) {
scheduler.NewScheduler().LoadActionTimings(acntDb3)
time.Sleep(time.Millisecond) // Give time to scheduler to topup the account
if acnt, err := acntDb3.GetAccount("*out:cgrates.org:12346"); err != nil {
t.Error(err)
} else if len(acnt.BalanceMap) != 1 {
t.Error("Account does not have enough balances: ", acnt.BalanceMap)
} else if acnt.BalanceMap[engine.MINUTES+engine.OUTBOUND][0].Value != 40 {
t.Errorf("Account does not have enough minutes in balance", acnt.BalanceMap[engine.MINUTES+engine.OUTBOUND][0].Value)
}
}
开发者ID:intralanman,项目名称:cgrates,代码行数:11,代码来源:ddazmbl3_test.go
示例5: startScheduler
func startScheduler(internalSchedulerChan chan *scheduler.Scheduler, cacheDoneChan chan struct{}, ratingDB engine.RatingStorage, exitChan chan bool) {
// Wait for cache to load data before starting
cacheDone := <-cacheDoneChan
cacheDoneChan <- cacheDone
utils.Logger.Info("Starting CGRateS Scheduler.")
sched := scheduler.NewScheduler(ratingDB)
internalSchedulerChan <- sched
sched.Loop()
exitChan <- true // Should not get out of loop though
}
开发者ID:cgrates,项目名称:cgrates,代码行数:11,代码来源:cgr-engine.go
示例6: TestExecuteActions
func TestExecuteActions(t *testing.T) {
scheduler.NewScheduler().LoadActionPlans(ratingDb)
time.Sleep(time.Millisecond) // Give time to scheduler to topup the account
if acnt, err := acntDb.GetAccount("*out:cgrates.org:12344"); err != nil {
t.Error(err)
} else if len(acnt.BalanceMap) != 2 {
t.Error("Account does not have enough balances: ", acnt.BalanceMap)
} else if acnt.BalanceMap[utils.VOICE+engine.OUTBOUND][0].Value != 40 {
t.Error("Account does not have enough minutes in balance", acnt.BalanceMap[utils.VOICE+engine.OUTBOUND][0].Value)
} else if acnt.BalanceMap[utils.MONETARY+engine.OUTBOUND][0].Value != 10 {
t.Error("Account does not have enough monetary balance", acnt.BalanceMap[utils.MONETARY+engine.OUTBOUND][0].Value)
}
}
开发者ID:gale320,项目名称:cgrates,代码行数:13,代码来源:ddazmbl1_test.go
示例7: main
//.........这里部分代码省略.........
server.RpcRegister(cdrStats)
server.RpcRegister(&apier.CDRStatsV1{cdrStats}) // Public APIs
}
responder := &engine.Responder{ExitChan: exitChan}
apierRpc := &apier.ApierV1{StorDb: loadDb, RatingDb: ratingDb, AccountDb: accountDb, CdrDb: cdrDb, LogDb: logDb, Config: cfg, Responder: responder, CdrStatsSrv: cdrStats}
if cfg.RaterEnabled && !cfg.BalancerEnabled && cfg.RaterBalancer != utils.INTERNAL {
engine.Logger.Info("Registering Rater service")
server.RpcRegister(responder)
server.RpcRegister(apierRpc)
}
if cfg.BalancerEnabled {
engine.Logger.Info("Registering Balancer service.")
go stopBalancerSignalHandler()
stopHandled = true
responder.Bal = bal
server.RpcRegister(responder)
server.RpcRegister(apierRpc)
if cfg.RaterEnabled {
engine.Logger.Info("<Balancer> Registering internal rater")
bal.AddClient("local", new(engine.ResponderWorker))
}
}
if !stopHandled {
go generalSignalHandler()
}
if cfg.SchedulerEnabled {
engine.Logger.Info("Starting CGRateS Scheduler.")
go func() {
sched := scheduler.NewScheduler()
go reloadSchedulerSingnalHandler(sched, accountDb)
apierRpc.Sched = sched
sched.LoadActionTimings(accountDb)
sched.Loop()
}()
}
var histServChan chan struct{} // Will be initialized only if the server starts
if cfg.HistoryServerEnabled {
histServChan = make(chan struct{})
rpcWait = append(rpcWait, histServChan)
go startHistoryServer(histServChan)
}
if cfg.HistoryAgentEnabled {
engine.Logger.Info("Starting CGRateS History Agent.")
go startHistoryAgent(histServChan)
}
var medChan chan struct{}
if cfg.MediatorEnabled {
engine.Logger.Info("Starting CGRateS Mediator service.")
medChan = make(chan struct{})
go startMediator(responder, logDb, cdrDb, cacheChan, medChan)
}
var cdrsChan chan struct{}
if cfg.CDRSEnabled {
engine.Logger.Info("Starting CGRateS CDRS service.")
cdrsChan = make(chan struct{})
httpWait = append(httpWait, cdrsChan)
go startCDRS(responder, cdrDb, medChan, cdrsChan)
开发者ID:intralanman,项目名称:cgrates,代码行数:67,代码来源:cgr-engine.go
注:本文中的github.com/cgrates/cgrates/scheduler.NewScheduler函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论