mirror of
https://github.com/cgrates/cgrates.git
synced 2026-02-12 02:26:26 +05:00
better handling of cdr replication goroutines
possible fixes the issue #423
This commit is contained in:
@@ -451,7 +451,10 @@ func (self *CdrServer) replicateCdr(cdr *CDR) error {
|
||||
}
|
||||
body = jsn
|
||||
}
|
||||
errChan := make(chan error)
|
||||
var errChan chan error
|
||||
if rplCfg.Synchronous {
|
||||
errChan = make(chan error)
|
||||
}
|
||||
go func(body interface{}, rplCfg *config.CdrReplicationCfg, content string, errChan chan error) {
|
||||
fallbackPath := path.Join(
|
||||
self.cgrCfg.HttpFailedDir,
|
||||
@@ -462,10 +465,13 @@ func (self *CdrServer) replicateCdr(cdr *CDR) error {
|
||||
if err != nil {
|
||||
utils.Logger.Err(fmt.Sprintf(
|
||||
"<CDRReplicator> Replicating CDR: %+v, got error: %s", cdr, err.Error()))
|
||||
errChan <- err
|
||||
if rplCfg.Synchronous {
|
||||
errChan <- err
|
||||
}
|
||||
}
|
||||
if rplCfg.Synchronous {
|
||||
errChan <- nil
|
||||
}
|
||||
errChan <- nil
|
||||
|
||||
}(body, rplCfg, content, errChan)
|
||||
if rplCfg.Synchronous { // Synchronize here
|
||||
<-errChan
|
||||
|
||||
Reference in New Issue
Block a user