mirror of
https://github.com/cgrates/cgrates.git
synced 2026-02-16 05:39:54 +05:00
Clarify cacheRead/cacheWrite for resource
This commit is contained in:
committed by
Dan Christian Bogos
parent
ed2b45d8b0
commit
a07e4b1e39
@@ -218,7 +218,7 @@ func (dm *DataManager) CacheDataFromDB(prfx string, ids []string, mustBeCached b
|
||||
_, err = dm.GetResourceProfile(tntID.Tenant, tntID.ID, false, true, utils.NonTransactional)
|
||||
case utils.ResourcesPrefix:
|
||||
tntID := utils.NewTenantID(dataID)
|
||||
_, err = dm.GetResource(tntID.Tenant, tntID.ID, true, utils.NonTransactional)
|
||||
_, err = dm.GetResource(tntID.Tenant, tntID.ID, false, true, utils.NonTransactional)
|
||||
case utils.StatQueueProfilePrefix:
|
||||
tntID := utils.NewTenantID(dataID)
|
||||
_, err = dm.GetStatQueueProfile(tntID.Tenant, tntID.ID, false, true, utils.NonTransactional)
|
||||
@@ -589,10 +589,10 @@ func (dm *DataManager) RemoveTiming(id, transactionID string) (err error) {
|
||||
return
|
||||
}
|
||||
|
||||
func (dm *DataManager) GetResource(tenant, id string, skipCache bool,
|
||||
func (dm *DataManager) GetResource(tenant, id string, cacheRead, cacheWrite bool,
|
||||
transactionID string) (rs *Resource, err error) {
|
||||
tntID := utils.ConcatenatedKey(tenant, id)
|
||||
if !skipCache {
|
||||
if cacheRead {
|
||||
if x, ok := Cache.Get(utils.CacheResources, tntID); ok {
|
||||
if x == nil {
|
||||
return nil, utils.ErrNotFound
|
||||
@@ -602,14 +602,16 @@ func (dm *DataManager) GetResource(tenant, id string, skipCache bool,
|
||||
}
|
||||
rs, err = dm.dataDB.GetResourceDrv(tenant, id)
|
||||
if err != nil {
|
||||
if err == utils.ErrNotFound {
|
||||
if err == utils.ErrNotFound && cacheWrite {
|
||||
Cache.Set(utils.CacheResources, tntID, nil, nil,
|
||||
cacheCommit(transactionID), transactionID)
|
||||
}
|
||||
return nil, err
|
||||
}
|
||||
Cache.Set(utils.CacheResources, tntID, rs, nil,
|
||||
cacheCommit(transactionID), transactionID)
|
||||
if cacheWrite {
|
||||
Cache.Set(utils.CacheResources, tntID, rs, nil,
|
||||
cacheCommit(transactionID), transactionID)
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
|
||||
@@ -1727,7 +1727,7 @@ func testOnStorITResource(t *testing.T) {
|
||||
TTLIdx: []string{"RU1"},
|
||||
}
|
||||
if _, rcvErr := onStor.GetResource(res.Tenant, res.ID,
|
||||
false, utils.NonTransactional); rcvErr != nil && rcvErr != utils.ErrNotFound {
|
||||
true, false, utils.NonTransactional); rcvErr != nil && rcvErr != utils.ErrNotFound {
|
||||
t.Error(rcvErr)
|
||||
}
|
||||
if err := onStor.SetResource(res); err != nil {
|
||||
@@ -1735,14 +1735,14 @@ func testOnStorITResource(t *testing.T) {
|
||||
}
|
||||
//get from cache
|
||||
if rcv, err := onStor.GetResource("cgrates.org", "RL1",
|
||||
false, utils.NonTransactional); err != nil {
|
||||
true, false, utils.NonTransactional); err != nil {
|
||||
t.Error(err)
|
||||
} else if !(reflect.DeepEqual(res, rcv)) {
|
||||
t.Errorf("Expecting: %v, received: %v", res, rcv)
|
||||
}
|
||||
//get from database
|
||||
if rcv, err := onStor.GetResource("cgrates.org", "RL1",
|
||||
true, utils.NonTransactional); err != nil {
|
||||
false, false, utils.NonTransactional); err != nil {
|
||||
t.Error(err)
|
||||
} else if !(reflect.DeepEqual(res, rcv)) {
|
||||
t.Errorf("Expecting: %v, received: %v", res, rcv)
|
||||
@@ -1761,14 +1761,14 @@ func testOnStorITResource(t *testing.T) {
|
||||
time.Sleep(sleepDelay)
|
||||
//get from cache
|
||||
if rcv, err := onStor.GetResource("cgrates.org", "RL1",
|
||||
false, utils.NonTransactional); err != nil {
|
||||
true, false, utils.NonTransactional); err != nil {
|
||||
t.Error(err)
|
||||
} else if !(reflect.DeepEqual(res, rcv)) {
|
||||
t.Errorf("Expecting: %v, received: %v", res, rcv)
|
||||
}
|
||||
//get from database
|
||||
if rcv, err := onStor.GetResource("cgrates.org", "RL1",
|
||||
true, utils.NonTransactional); err != nil {
|
||||
false, false, utils.NonTransactional); err != nil {
|
||||
t.Error(err)
|
||||
} else if !(reflect.DeepEqual(res, rcv)) {
|
||||
t.Errorf("Expecting: %v, received: %v", res, rcv)
|
||||
@@ -1778,12 +1778,12 @@ func testOnStorITResource(t *testing.T) {
|
||||
}
|
||||
//check cache if removed
|
||||
if _, rcvErr := onStor.GetResource(res.Tenant, res.ID,
|
||||
false, utils.NonTransactional); rcvErr != utils.ErrNotFound {
|
||||
true, false, utils.NonTransactional); rcvErr != utils.ErrNotFound {
|
||||
t.Error(rcvErr)
|
||||
}
|
||||
//check database if removed
|
||||
if _, rcvErr := onStor.GetResource(res.Tenant, res.ID,
|
||||
true, utils.NonTransactional); rcvErr != utils.ErrNotFound {
|
||||
false, false, utils.NonTransactional); rcvErr != utils.ErrNotFound {
|
||||
t.Error(rcvErr)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -420,7 +420,7 @@ func (rS *ResourceService) cachedResourcesForEvent(evUUID string) (rs Resources)
|
||||
guardian.Guardian.GuardIDs(config.CgrConfig().LockingTimeout, lockIDs...)
|
||||
defer guardian.Guardian.UnguardIDs(lockIDs...)
|
||||
for i, rTid := range rIDs {
|
||||
if r, err := rS.dm.GetResource(rTid.Tenant, rTid.ID, false, ""); err != nil {
|
||||
if r, err := rS.dm.GetResource(rTid.Tenant, rTid.ID, true, true, ""); err != nil {
|
||||
utils.Logger.Warning(
|
||||
fmt.Sprintf("<ResourceS> force-uncaching resources for evUUID: <%s>, error: <%s>",
|
||||
evUUID, err.Error()))
|
||||
@@ -466,7 +466,7 @@ func (rS *ResourceService) matchingResourcesForEvent(ev *utils.CGREvent, usageTT
|
||||
} else if !pass {
|
||||
continue
|
||||
}
|
||||
r, err := rS.dm.GetResource(rPrf.Tenant, rPrf.ID, false, "")
|
||||
r, err := rS.dm.GetResource(rPrf.Tenant, rPrf.ID, true, true, "")
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user