内存缓存是进程之内的,所以不能进程共享:
CACHES = { 'default':{ 'BACKEND':'django.core.cache.backends.locmem.LocMemCache', 'LOCATION': 'unique-snowflake' } }
from django.core.cache import cache
def get_terminal_info(self): if cache.has_key("terminal_info"): return cache.get("terminal_info") else: return {} def set_terminal_info(self, msm, single_terminal_info): self.terminal_lock.acquire() if cache.has_key("terminal_info"): all_terminal_info = cache.get("terminal_info") else: all_terminal_info = {} if msm in all_terminal_info: msm_terminal_info = all_terminal_info[msm] else: msm_terminal_info = {} for attr_key in single_terminal_info: msm_terminal_info[attr_key] = single_terminal_info[attr_key] all_terminal_info[msm] = msm_terminal_info cache.set("terminal_info", all_terminal_info, None) self.terminal_lock.release() LogUtil.info("save data to cache {} info {}".format(msm, single_terminal_info))