mirror of
https://github.com/cgrates/cgrates.git
synced 2026-02-11 18:16:24 +05:00
fixes for cdr stats saving/loading
This commit is contained in:
@@ -73,9 +73,11 @@ func newQueueSaver(id string, saveInterval time.Duration, sq *StatsQueue, adb Ac
|
||||
select {
|
||||
case <-svr.ticker.C:
|
||||
if svr.sq.IsDirty() {
|
||||
svr.sq.mux.Lock()
|
||||
if err := svr.adb.SetCdrStatsQueue(svr.sq); err != nil {
|
||||
Logger.Err(fmt.Sprintf("Error saving cdr stats queue id %s: %v", id, err))
|
||||
}
|
||||
svr.sq.mux.Unlock()
|
||||
}
|
||||
case <-svr.stopper:
|
||||
break
|
||||
|
||||
@@ -85,6 +85,8 @@ func (sq *StatsQueue) UpdateConf(conf *CdrStats) {
|
||||
}
|
||||
|
||||
func (sq *StatsQueue) Load(saved *StatsQueue) {
|
||||
sq.mux.Lock()
|
||||
defer sq.mux.Unlock()
|
||||
sq.Cdrs = saved.Cdrs
|
||||
for key, metric := range saved.Metrics {
|
||||
if _, exists := sq.Metrics[key]; exists {
|
||||
|
||||
@@ -677,7 +677,7 @@ func (rs *RedisStorage) SetAccount(ub *Account) (err error) {
|
||||
func (rs *RedisStorage) GetCdrStatsQueue(key string) (sq *StatsQueue, err error) {
|
||||
var values []byte
|
||||
if values, err = rs.db.Get(utils.CDR_STATS_QUEUE_PREFIX + key); err == nil {
|
||||
sq = &StatsQueue{}
|
||||
sq = &StatsQueue{Metrics: make(map[string]Metric)}
|
||||
err = rs.ms.Unmarshal(values, sq)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user