def get_object(self, id=None,use_cache=True): session=self.session() raw_id = "o-%s" % tob(id) if use_cache: try: if session.check_obj(raw_id): data = session.get_obj(raw_id) if "_auto_id" in data: return loads(data) except: log(ERROR,"CACHE read error") sql = "SELECT `auto_id`,`id`,`object`,`updated` FROM `"+self.table+"` WHERE `id`=%s" rows = session.connection.query(sql, tou(id)) if rows: data = rows[0].object objstr = decompress(data) obj = loads(objstr) obj.update(dict(id=id)) obj["_updated"] = rows[0].updated obj["_auto_id"] =rows[0].auto_id if use_cache: try: session.set_obj(raw_id,dumps(obj)) except: log(ERROR,"CACHE write error") return obj
def update_object(self,object=None): session=self.session() raw_id = "o-%s" %object['id'] datas = compress(dumps(object)) key_id=object["_auto_id"] timestamp=datetime.datetime.now() sql = "UPDATE `" + self.table + "` SET `object`=%s,`updated`=%s WHERE `auto_id`=%s" session.connection.execute(sql, datas,timestamp,key_id) object['_updated'] = timestamp try: session.set_obj(raw_id,dumps(object)) except: log(ERROR,"CACHE update error")