cache: deepcopy for store/recall values
This commit is contained in:
parent
2bfe732c33
commit
dc70beb0c9
1 changed files with 6 additions and 4 deletions
10
model.py
10
model.py
|
@ -12,6 +12,8 @@ from decimal import Decimal
|
|||
from sql import With, Literal
|
||||
from sql.functions import Function
|
||||
from sql.conditionals import Coalesce
|
||||
import copy
|
||||
|
||||
|
||||
ENABLE_CACHE = True
|
||||
CACHEKEY_CURRENCY = 'currency-%s'
|
||||
|
@ -86,7 +88,7 @@ class MemCache(Model):
|
|||
"""
|
||||
if ENABLE_CACHE == False:
|
||||
return None
|
||||
return cls._cashbook_value_cache.get(cache_key)
|
||||
return copy.deepcopy(cls._cashbook_value_cache.get(cache_key))
|
||||
|
||||
@classmethod
|
||||
def store_result(cls, records, cache_keys, values):
|
||||
|
@ -98,7 +100,7 @@ class MemCache(Model):
|
|||
data = {x:values[x][record.id]
|
||||
for x in values.keys()
|
||||
if record.id in values[x].keys()}
|
||||
cls._cashbook_value_cache.set(cache_keys[record.id], data)
|
||||
cls._cashbook_value_cache.set(cache_keys[record.id], copy.deepcopy(data))
|
||||
|
||||
@classmethod
|
||||
def store_value(cls, cache_key, values):
|
||||
|
@ -106,7 +108,7 @@ class MemCache(Model):
|
|||
"""
|
||||
if ENABLE_CACHE == False:
|
||||
return
|
||||
cls._cashbook_value_cache.set(cache_key, values)
|
||||
cls._cashbook_value_cache.set(cache_key, copy.deepcopy(values))
|
||||
|
||||
@classmethod
|
||||
def read_from_cache(cls, records, cache_keys, names, result):
|
||||
|
@ -117,7 +119,7 @@ class MemCache(Model):
|
|||
|
||||
todo_records = []
|
||||
for record in records:
|
||||
values = cls.read_value(cache_keys[record.id])
|
||||
values = copy.deepcopy(cls.read_value(cache_keys[record.id]))
|
||||
if values:
|
||||
for name in names:
|
||||
if name not in values.keys():
|
||||
|
|
Loading…
Reference in a new issue