Esempio n. 1
0
File: cache.py Progetto: linbirg/om
    def put(self, data):
        if data is None:
            return

        key = self.__get_pks_str_by_data(data)
        logger.LOG_DEBUG('put key:%s', key)
        logger.LOG_DEBUG('put data:%s', str(data))

        import time
        logger.LOG_DEBUG('time now:%d', time.time())
        self._cache.set(key, (data, int(time.time())))
Esempio n. 2
0
File: cache.py Progetto: linbirg/om
    def delete(self, data):
        if data is None:
            return

        key = self.__get_pks_str_by_data(data)
        logger.LOG_DEBUG('delete key:%s', key)
        self._cache.pop(key)
Esempio n. 3
0
def commit(db):
    assert db

    try:
        yield db
        db.commit()
        logger.LOG_DEBUG("数据库连接[{id}]已经提交.".format(id=id(db)))
    except:
        db.rollback()
        logger.LOG_TRACE("数据库连接[{id}]已经回滚.".format(id=id(db)))
        raise
Esempio n. 4
0
File: cache.py Progetto: linbirg/om
    def find_one(self, **pks):
        cache_data = None
        try:
            cache_data = self.cache_table.get(**pks)
        except Exception as e:
            logger.LOG_WARNING('读取缓存数据时异常:%s', str(e))

        if cache_data is not None:
            logger.LOG_DEBUG('find data in[%s]:%s', self.cache_table._name,
                             str(cache_data))
            return cache_data

        db_data = self._db_dao.find_one(**pks)

        self.cache_table.put(db_data)
        return db_data
Esempio n. 5
0
File: cache.py Progetto: linbirg/om
    def get(self, **pks):
        pks_str = self.__get_pks_str(**pks)
        logger.LOG_DEBUG('pks_str:%s cache name:%s', pks_str, self._name)
        item = self._cache.get(pks_str)
        if item is None:
            logger.LOG_DEBUG('no data found.')
            return None

        data, stamp = item
        logger.LOG_DEBUG('find data:%s', str(data))
        logger.LOG_DEBUG('timestamp:%d', stamp)
        import time
        to_now_sec = int(time.time()) - int(stamp)  # to_sec
        logger.LOG_DEBUG('to_now_sec:%d', to_now_sec)
        if to_now_sec > self._duration:
            logger.LOG_DEBUG('data expired.')
            return None

        return data
Esempio n. 6
0
File: cache.py Progetto: linbirg/om
 def __getattr__(self, name):
     """这个方法在访问的attribute不存在的时候被调用
     the __getattr__() method is actually a fallback method
     that only gets called when an attribute is not found"""
     logger.LOG_DEBUG('CacheDao中没有改属性:%s', name)
     return getattr(self._db_dao, name)